存储过程有时用来返回查询结果,有时仅仅用来完成数据库操作,而没有返回值。在这里我们先来看如何调用无返回值的存储过程。用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。集算器支持的参数类型详见本文的附录:参数类型定义。