4.5.2调用单返回值的存储过程

 

对于有返回值的存储过程,就只能用proc函数调用了。下面的存储过程testb要返回一个参数值,所以不能使用execute函数,需要使用proc函数。

-  create or replace procedure testb

-  (para1 in varchar2,para2 out varchar2) 

-  as

-  begin

-   select name into para2 from emp where id= para1;

-  end testb;

集算器调用这个存储过程的代码是:

 

A

1

=connect("ora")

2

=A1.proc("{call testb(?,?)}",1:0:"i":,:11:"o":name)

3

=name

4

>A1.close()

A1中连接数据库,A4中关闭连接。

A2中使用proc函数调用存储过程testb。这里使用了两个参数:1:0:"i":表示值为1,类型为自动判断的输入参数;:11:"o":name中的11代表字符串类型(详见附录:参数类型定义),"o"代表输出类型,name是为这个输出参数定义了一个集算器变量,接收返回值。当

A3中取得变量name的值,即为存储过程的输出结果。变量值的类型由存储过程决定,在本例中name用来返回指定编号员工的名字,类型是字符串。

在存储过程中,共有3种输入/输出模式:输入参数,输出参数,输入输出参数,分别用"i","o""io"表示。其中,输入输出参数,表示存储过程中的参数既用来输入数据,同时也被存储过程赋值。