gpt4 book ai didi

oracle - 向 Oracle OLTP 表添加列

转载 作者:行者123 更新时间:2023-12-01 15:13:57 24 4
gpt4 key购买 nike

我正在尝试在应用程序运行和繁忙时向 Oracle 10 OLTP 数据库中的常用表添加可为空的列。添加可为空的列只是数据字典更改,因此任何表锁都只会保持很短的时间(可由系统处理)。

问题是我的 ALTER TABLE 经常因为这个而失败:

ORA-00054: resource busy and acquire with NOWAIT specified

我目前的方法是通过运行它来破坏更改,直到表上恰好没有锁。这意味着我无法在 SQL*Plus 中完整地运行这样的脚本,而是需要复制并粘贴每个语句并确保其正常运行。

有没有更好的办法?

最佳答案

暴力方法怎么样?将其置于无限循环中,完成后退出。伪代码(没查过):

create or replace 
procedure execDDL(ddl in varchar2) is
myexp EXCEPTION;
pragma exception_init (myexp, -54);
begin

loop
begin
execute immediate ddl;
exit;
exception
when myexp then
null;
end loop;
end;

关于oracle - 向 Oracle OLTP 表添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4953844/

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