暂无图片
Oracle里有没有超时设置,如果某语句(dml居多)执行的时间太长(如30秒),跳过它,然后返回一个超时错误?
我来答
分享
暂无图片 匿名用户
Oracle里有没有超时设置,如果某语句(dml居多)执行的时间太长(如30秒),跳过它,然后返回一个超时错误?

Oracle里有没有超时设置,如果某语句(dml居多)执行的时间太长(如30秒),跳过它,然后返回一个超时错误?

我来答
添加附件
收藏
分享
问题补充
7条回答
默认
最新
农夫三拳

这个好像没有吧,没听说过,有也不敢用

暂无图片 评论
暂无图片 有用 1
伊伊相印
2022-12-21
这个好像没有吧,没听说过,有也不敢用
我很低调嘛

dml没有吧,只有 SELECT .. FOR UPDATE WAIT 5,可以指定等待多少秒就报超时。

其实如果要保证更新时不长时间等待的话,一般做法是将要更新的记录用SELECT ... FOR UPDATE NOWAIT 锁定后,再UPDATE,也能保证处理逻辑的时候,抓取的数据是最新的。

暂无图片 评论
暂无图片 有用 0
watson
2022-12-21
wait 5这种确实会实际些,针对单一的语句,不会影响其他的业务
watson

不建议你这么武断的想法,一旦设置了类似这么一个参数,所有的类似语句都会受到影响;

但按你题意的想法只是想让某一业务的DML语句的执行时间超过一定时间,让其跳过;这种的话,建议用存储过程的形式来进行,如在存储过程中判断你某一业务的dml语句执行的时长,如果时长超过指定的时间,直接kill immediate掉相应的session;

暂无图片 评论
暂无图片 有用 0
ora_221
2022-12-21
kill session 如果没杀掉就会很尴尬了,哈哈~
2022-12-21
不建议你这。么武断的想法,一旦设置了类似这么一个参数,所有的类似语句都会受到影响
张sir

没听说,也不建议这么干,

暂无图片 评论
暂无图片 有用 0
ora_221

要是有,在生产业务谁敢用,没这么奇葩的需求吧

暂无图片 评论
暂无图片 有用 0
超越无限D

这个好像没有吧,没听说过,有也不敢用

暂无图片 评论
暂无图片 有用 0
yBmZlQzJ

这个好像没有吧,没听说过,有也不敢用

暂无图片 评论
暂无图片 有用 2
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏