oracle10g存储过程执行不按顺序执行????

dcren521 2008-07-07 07:51:02
ORACLE10G环境下我写了三个存储过程。
过程1 RCJS;--日常计算
过程2 YDJS;--月度计算
过程3 JDJS;--季度计算

按我的设计要求,先对基础数据进行日常计算。然后在日常计算的结果基础上进行月度计算,最后在月度计算的结果上进行季度计算。
写完后,我先单独调用日常计算程序RCJS,执行正常。执行完毕后我再分别单独运行月度计算YDJS和季度计算程序JDJS.一切都正常。
由于日常计算时间较长,我不想等其运行后再手工运行另外两个程序。所以我运行如下代码:

------------------------------------------------
declare


begin
--日常计算
RCJS;
--月度计算
YDJS;
--季度计算
JDJS;

end;
----------------------------------------------------
结果我发现RCJS没有执行完时,系统就开始执行YDJS和JDJS。由于日常数据结果不完整,所以月度计算与季度计算结果不正确。
不知道是什么原因,难道这样写的程序会同步执行?

请高人指点!感觉不尽!

...全文
343 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
poi_9 2008-07-09
  • 打赏
  • 举报
回复
学习
havelock 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fibbery 的回复:]
这是一个问题!可以在3个存储过程中的开始和结束都做一个输出,可以使DBMS_OUTPUT.PUT_LINE也可以使向一个表中插入数据,如果输出有交叉说明的确并行了,否则还是串行!
另外,同时调用这3个存储过程似乎不太合理,日结是需要每天进行的,月结是每月进行的,季结是一个季度才进行一次的!所以,我建议分开,在不同的Job中执行。
[/Quote]
cuifengqi0904 2008-07-08
  • 打赏
  • 举报
回复
你这样做肯定是顺序执行相应的存储过程啊!
同时调用这3个存储过程似乎不太合理,日结是需要每天进行的,月结是每月进行的,季结是一个季度才进行一次的!所以,我建议分开,在不同的Job中执行。
以上观点同2楼!
star_guan2008 2008-07-08
  • 打赏
  • 举报
回复
学习
oracle_louis 2008-07-08
  • 打赏
  • 举报
回复
错误的道路千万条
我们只要找到正确的解决方法就好
楼上几位的建议很值得考虑
amdwinter 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 oracle_louis 的回复:]
错误的道路千万条
我们只要找到正确的解决方法就好
楼上几位的建议很值得考虑
[/Quote]
dbcxbj 2008-07-08
  • 打赏
  • 举报
回复
你要真想这么调用的话就把月度计算套在日常计算里在把季度计算套在月度计算里
这样肯定是顺序执行的。。
yuzhenhuan01 2008-07-08
  • 打赏
  • 举报
回复
用一个过程实现就是
这样就不会有什么问题
代码长点无所谓的
vc555 2008-07-07
  • 打赏
  • 举报
回复
你可以把他们都放在一个过程里。这样一定是顺序执行了。
fibbery 2008-07-07
  • 打赏
  • 举报
回复
这是一个问题!可以在3个存储过程中的开始和结束都做一个输出,可以使DBMS_OUTPUT.PUT_LINE也可以使向一个表中插入数据,如果输出有交叉说明的确并行了,否则还是串行!
另外,同时调用这3个存储过程似乎不太合理,日结是需要每天进行的,月结是每月进行的,季结是一个季度才进行一次的!所以,我建议分开,在不同的Job中执行。
hebo2005 2008-07-07
  • 打赏
  • 举报
回复
在存储过程里用DBMS_OUTPUT.put_line来输出过程的开始结束时间,来跟踪下

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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