oracle存储过程中update语句一直在执行中,无法更新完成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle存储过程中update语句一直在执行中,无法更新完成相关的知识,希望对你有一定的参考价值。

入参in_yf是月份,格式如:“201501”,在log_insert表中month字段类型是varchar2(6),这个表很小(五行数据),但是执行这个过程,10分钟后还在执行,也不报错。不知道哪里出问题了,求教!

可能这个表被别的用户锁了;

select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo, dba_objects ao, v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid;

--杀掉会话
alter system kill session \'sid,serial#\';
参考技术A 尝试更改sql脚本如下所示:
create or replace procedure  test_wz(in_yf in varchar2)
is
v_yf varchar(50);
begin
   v_yf:=in_yf;
   update log_insert  -- 不要用别名
   set zfsjdc_date=sysdate
   where month=v_yf and unusual_flag='0';
   -- 去掉commit;因为你不是在Oracle SQL PLUS环境下执行。
end test_wz;

参考技术B 表锁了,应该是有别的程序操作了这条记录,没有提交事物。本回答被提问者采纳

以上是关于oracle存储过程中update语句一直在执行中,无法更新完成的主要内容,如果未能解决你的问题,请参考以下文章

关于oracle存储过程select into 未找到数据问题

oracle 存储过程sql语句

oracle当表A1,数据发生update时,将字段time更新为当前时间

oracle带参数的存储过程,一直提示sql无效sql语句。求高手指点

Oracle 整表导出为update语句(存储过程实现)

oracle中在编写存储过程启动多线程的问题?