如题,有一个函数function aa(ain varchar2,b out varchar2)
想在存储过程中调用该函数,并输出该函数的输出参数b,应该如何写?
想在存储过程中调用该函数,并输出该函数的输出参数b,应该如何写?
解决方案 »
- oracle里function里創建臨時表錯誤,看看那地方錯啦
- 新手求教关于procedure
- 恳求推荐一些入手oracle ebs forms开发的书籍和资料~~
- oracle 10g 安装好但是打不开数据库主页
- 异构:关于oracle连接SQLServer的问题,
- 谁能给我一个win2000下oracle817的性能优化方案,100分送上
- 两数据库连接并可以导表中数据的问题
- pl/sql连接oracle,使用UpdateSet命令时,招行到一半时取消,会不会有可能只执行了一部分修改操作?
- 如何更改数据库实例存放的位置?
- I can not delete the datafile after shutdown the database ?
- 主从表这种查询是否能实现?
- 请教一条sql查询语句,在线等,谢谢大家的帮忙
rin varchar2(100);
rout varchar2(100);
re number;--假设的你的函数返回此类型
begin
re := aa(rin,rout);
dbms_output.put_line(rout);
end;
/
其实函数和过程的区别就是函数必须要返回一个值,而过程不能够返回(通过return)一个值。从你描述的情况看来你的该函数不建议向你现在这样创建。
你可以很明确的传入参数就是传入参数,传出参数就是传出参数。
function aa(ain varchar2,b invarchar2)return number;--假设返回的是number类型的数据。
然后再过程中定义一个变量来接受该函数传回的值。
例如:
l_return :=aa(ain,b);
SQL> create or replace procedure p is
2 c varchar2(100);
3 begin
4 c := aa('ACCOUNTING',c);
5 dbms_output.put_line(c);
6 end;
7 /
Procedure created
SQL> create or replace function aa(a in varchar2,b out varchar2)
2 return varchar2 is
3 begin
4 select LOC into b from dept where dname = a;
5 return b;
6 end;
7 /
Function created
SQL> exec p;
NEW YORK
PL/SQL procedure successfully completed