代码:
create or replace function get_info
(pname varchar2, djob out varchar2)
return varchar2
is
v_job emp.job%type;
begin
select a.job ,b.dname into v_job,djob
from emp a,dept b
where a.deptno=b.deptno
and upper(ename)=upper(pname);
return v_job;
end;
-----------------------------------------------------------调用
declare
djob varchar2(100);
out_job varchar2(100);
begin
out_job:=get_info('scott',djob);
dbms_output.put_line('a工作是:'||out_job);
dbms_output.put_line('b工作是:'||djob);
end;
很奇怪,返回值只有一个v_job,但是通过两次输出,却能将djob也输出,按我的理解,这个out参数应该具有和return相同的功能,是对return的一个补充,当要输出多个值的时候,可以用out参数输出,但是输出类型只能与返回值类型一致,因此感觉这个功能其实局限性挺大