[英]select query using an invalid package reference in oracle
我有一个包含一个函数的包,该函数仅从给定产品 ID 的表中返回一个描述。
现在我有一个程序,它有一个使用这个函数的 select 语句。 今天早上我注意到,包体已经失效,所有对这个过程的调用都会导致运行那个 select 语句,由于包引用无效,该语句永远不会完成。
我需要对我的包进行更改,但在所有进程完成(或回滚)之前我无法这样做。
我能做什么..?
您可以使用以下查询来查询活动进程以获取 sid 和序列号。
SELECT ses.sid, ses.serial#, ses.username, ses.schemaname, sql.sql_text
FROM v$session ses,
v$sql sql
WHERE sql.sql_id(+) = ses.sql_id
AND ses.type = 'USER'
AND ses.status = 'ACTIVE'
AND UPPER(sql.sql_text) LIKE '%MY_PKG.MY_FUNC%';
然后您可以让 DBA 终止执行您的函数的会话。
ALTER SYSTEM KILL SESSION '<sid, serial#>';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.