gpt4 book ai didi

sql - 避免在编译 Oracle 包时挂起

转载 作者:行者123 更新时间:2023-12-01 00:51:32 25 4
gpt4 key购买 nike

我们有一种情况,包的编译需要永远!
如果我们用新名称编译包,那么它就可以工作了!

据我了解,由于包上的锁,编译挂起!

这样的事情可能有助于确定问题!

    SELECT s.sid,
l.lock_type,
l.mode_held,
l.mode_requested,
l.lock_id1,
FROM dba_lock_internal l,
v$session s
WHERE s.sid = l.session_id
AND UPPER(l.lock_id1) LIKE '%PROCEDURE_NAME%'
AND l.lock_type = 'Body Definition Lock';

还有这个
select 
x.sid
from
v$session x, v$sqltext y
where
x.sql_address = y.address
and
y.sql_text like '%PROCEDURE_NAME%';

是不是只有 ' body 定义锁' 阻止编译?
是否有任何其他锁定类型阻止编译?

如何避免锁定并进行编译?仅通过杀死 session ?还有别的吗?

最佳答案

您可能想查看 Edition-based Redefinition这将允许您创建新修订版,编译新版本而不会被当前使用包的其他 session 阻止,并在以后启用新修订版。

关于sql - 避免在编译 Oracle 包时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31045604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com