4.5.1调用无返回值的存储过程

 

存储过程有时用来返回查询结果,有时仅仅用来完成数据库操作,而没有返回值。在这里我们先来看如何调用无返回值的存储过程。用oracle的存储过程为例,存储过程proc1只有一个输入参数,没有输出参数:

-  create or replace procedure proc1

-  (pid IN VARCHAR)

-  as

-  begin

-   insert into emp values(pid,'mike');

-   update emp set name='rose' where id=pid;

-   commit;

-  end;

在集算器中用execute函数或者proc函数都可以来调用这个存储过程:

 

A

1

=connect("ora")

2

>A1.execute("{call proc1(?)}",4)

3

>A1.close()

A1中连接数据库。A2中用execute函数调用存储过程,输入参数值为4。执行存储过程完毕后,应该在A3中关闭数据库连接。

 

A

1

=connect("ora")

2

>A1.proc("{call proc1(?)}",4:0:"i":)

3

>A1.close()

A1中连接数据库,A3关闭数据库连接。A2中调用存储过程pro1,和上例不太一样,参数后边添加了描述。集算器中的proc函数主要用来调用有返回值和结果集的存储过程,但也可以用来调用无返回参数的存储过程pro1

在调用存储过程时设定每个参数的完整格式是a:t:m:v,其中a指参数值,t指参数类型,m指参数输入/输出模式,v指存储过程若有返回值时,存储结果的参数名称。本例中,4:0:"i":定义了一个输入参数,其中4是输入参数的值,0表示输入参数的类型是由集算器自动识别,"i"表示输入类型。如需要手工指定参数类型可以写为:4:1:"i":,中间的1代表整形int。集算器支持的参数类型详见本文的附录:参数类型定义