存储过程的写法

alextoby 2011-11-24 12:18:16
declare cursor aaa is
select * from a

因为有时候会timeout,如果timeout 则
declare cursor aaa is
select * from b

for bbb in aaa loop
......
end;

怎么实现?
...全文
97 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujianxi 2011-11-25
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE BUPIN.PR_BLRETURN_HAND
(传入的参数)
is
变量1;
变量2;
exception;

begin


when exception then
.....
end

alextoby 2011-11-24
  • 打赏
  • 举报
回复
a 表是在其他服务器上的,所以即便优化也会出现timeout
cosio 2011-11-24
  • 打赏
  • 举报
回复
select * from a
---看看有没有帮忙优化这个SQL!
alextoby 2011-11-24
  • 打赏
  • 举报
回复
declare cursor aaa is
select * from a
exception when others then
declare cursor aaa is
select * from b

这样写不对
我心飞翔 2011-11-24
  • 打赏
  • 举报
回复
使用光标FOR循环罢。


把主要内容放到创建存储过程的体中。
create or replace procedure (形参列表) is

begin
body代码。
end;
alextoby 2011-11-24
  • 打赏
  • 举报
回复
请具体说明,谢谢
cosio 2011-11-24
  • 打赏
  • 举报
回复
加事务的处理!
huangdh12 2011-11-24
  • 打赏
  • 举报
回复
放到异常处理里面吧。 不过不保险。 因为第二个也有可能操作超时。
cosio 2011-11-24
  • 打赏
  • 举报
回复
说一下你的需要,为什么要这样子的操作?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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