oracle存储过程中update语句一直在执行中,无法更新完成
入参in_yf是月份,格式如:“201501”,在log_insert表中month字段类型是varchar2(6),这个表很小(五行数据),但是执行这个过程,10分钟后...
入参in_yf是月份,格式如:“201501”,在log_insert表中month字段类型是varchar2(6),这个表很小(五行数据),但是执行这个过程,10分钟后还在执行,也不报错。不知道哪里出问题了,求教!
展开
3个回答
2016-02-05 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
可能这个表被别的用户锁了;
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#';
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#';
展开全部
尝试更改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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表锁了,应该是有别的程序操作了这条记录,没有提交事物。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询