繁体   English   中英

在 oracle 中使用无效的包引用选择查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM