oracle11g – 将列修改为NULL – Oracle
发布时间:2021-05-17 21:18:29 所属栏目:站长百科 来源:网络整理
导读:我有一个名为CUSTOMER的表,列数很少.其中之一是Customer_ID. 最初Customer_ID列不接受NULL值. 我已从代码级别进行了一些更改,因此默认情况下Customer_ID列将接受NULL值. 现在我的要求是,我需要再次使此列接受NULL值. 为此,我添加了执行以下查询: ALTER TABL
我有一个名为CUSTOMER的表,列数很少.其中之一是Customer_ID. 最初Customer_ID列不接受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来改变表.手动完成并确保首先仔细检查所有内容. (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |