怎样写这个存储过程?

xpzhou 2004-01-27 11:22:43
我用的是ORACLE8 I和PB7,如果想在ORACLE 中建立一个存储过程,将多条记录输出。那么在PB中如何调用该存储过程并得到返回值呢?
另外,在PB中常有DECLARE AA CURSOR FOR SELECT A,B FROM 表 where ...的写法,
然后再OPEN AA 并FETCH AA INTO :S1,:S1;,这种写法和调用一个ORACLE存储过程乡比,哪一个效率更高呢?因为我们的数据库在INTERNET上,所以需要尽量减少网络开销
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xpzhou 2004-01-30
  • 打赏
  • 举报
回复
我现在已经可以在PB中调用该存储过程了,实际上这个存储过程是输出一个结果集,在PB中EXECUTE成功之后,如果要看详细数据,还要在WHILE,LOOP循环里进行FETCH,而每次FETCH都将会存在网络方面的通信。所以,我认为这样的效果和在PB里直接DECALRE AA CURSOR FOR SELECT 差不多。也就是说在返回结果集方面,写不写存储过程无关紧要。大家认为对吗
smartstarchen 2004-01-29
  • 打赏
  • 举报
回复
你不能通过存储过程把数据保存到结果表中,然后用游标将数据从结果表中取出来吗?
liwucsdn 2004-01-28
  • 打赏
  • 举报
回复
在PB的help中有例子, 请输入declare关键字检索
xpzhou 2004-01-27
  • 打赏
  • 举报
回复
你的写法好象是SQL SERVER中的,有ORACLE的吗?能给一个完整的例子吗
ropriest 2004-01-27
  • 打赏
  • 举报
回复
DECLARE AA CURSOR ……是调用的游标,一般调用游标效率比较低,速度比较慢;
调用存储过程:
declare sp_xxx for sp_name
@var1=ls_1,
@var2=ls_2,
……;
exec sp_xxx ;
可以用sqlca.sqlcode或sqlca.sqlstate来获取返回值,也可以定义一个外部函数来处理。

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧