plsqljob执⾏多个存储过程_PLSQL命令⾏模式常见错误
⽇常运维过程中,经常使⽤PLSQL的command模式运⾏SQL脚本,对于⼀些常见的错误,你知道原因在哪⾥吗?
1.SQL脚本执⾏后弹出输⼊框
补偿金原因:SQL*PLUS默认环境⾥会把'&字符'当成变量来处理.
解决⽅案:
⽅案⼀:有些时候我们也需要在SQL>的符号下输⼊'&字符', 只需要改变SQL*PLUS下⼀个环境变量define即可.在脚本最前⾯添加关闭绑定变量功能,在脚本最后重新打开绑定变量功能。
set define off; #是把默认的&绑定变量的功能取消, 可以把'&字符'当成普通字符处理
set define on;#打开&绑定变量的功能,
⽅案⼆:在编辑器中将 & 批量更换成 '||'&'||' 然后执⾏即可。
2.SQL脚本执⾏后未正常结束,返回数字
给领导的元旦祝福原因:SQL脚本未正常结束
解决⽅案:在对应的脚本未正常结束SQL⾏后添加/或者;
3.SQL脚本执⾏后⼀直显⽰excuting执⾏中,⽆法结束
原因:SQL脚本中引⽤的表被锁定,相关事务锁未释放
解决⽅案:
1:查V$DB_OBJECT_CACHE汪曾祺简介
SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CUX_OE_ORDER_RPT_PKG' AND LOCKS!='0';
注意:CUX_OE_ORDER_RPT_PKG 为存储过程的名称。
发现 locks=2
好看的魔幻小说2:按对象查出sid,serial#
SELECT A.OBJECT_NAME,
B.SESSION_ID,
C.SERIAL#,
C.PROGRAM,
C.USERNAME,
C.COMMAND,
C.MACHINE,
C.LOCKWAIT
FROM ALL_OBJECTS A, v$locked_object B, v$session C WHERE A.OBJECT_ID = B.OBJECT_ID
急忙的近义词是什么>非主流超拽个性网名AND C.SID = B.SESSION_ID
3:alter system kill session 'sid值,serial#值' immediate;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论