gpt4 book ai didi

oracle11g - 将列修改为NULL-Oracle

转载 作者:行者123 更新时间:2023-12-04 05:24:56 26 4
gpt4 key购买 nike

我有一个名为CUSTOMER的表,其中有几列。其中之一是Customer_ID

最初Customer_IDWILL NOT接受NULL值。

我已经从代码级别进行了一些更改,以便Customer_ID列默认情况下将接受NULL值。

现在我的要求是,我需要再次使该列接受NULL值。

为此,我添加了执行以下查询的方法:

ALTER TABLE Customer MODIFY Customer_ID nvarchar2(20) NULL

我收到以下错误:
ORA-01451 error, the column already allows null entries so
therefore cannot be modified

这是因为我已经使 Customer_ID列接受 NULL值。

在执行上述查询之前,有没有办法检查该列是否将接受 NULL值...?

最佳答案

您可以在USER_TAB_COLUMNS中使用NULLABLE列。这告诉您该列是否使用二进制Y/N标志允许空值。

如果要将其放在脚本中,则可以执行以下操作:

declare

l_null user_tab_columns.nullable%type;

begin

select nullable into l_null
from user_tab_columns
where table_name = 'CUSTOMER'
and column_name = 'CUSTOMER_ID';

if l_null = 'N' then
execute immediate 'ALTER TABLE Customer
MODIFY (Customer_ID nvarchar2(20) NULL)';
end if;

end;

最好不要使用动态SQL来更改表。手动执行此操作,并确保首先仔细检查所有内容。

关于oracle11g - 将列修改为NULL-Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15657812/

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