我想将clob列的NOT NULL
约束更改为NULL
约束。但是,在尝试时
ALTER TABLE myTable ALTER COLUMN myClobCol clob NULL;
或
ALTER TABLE myTable modify myClobCol clob NULL;
我收到以下错误:
ORA-01735: invalid ALTER TABLE option
或
ORA-22859: invalid modification of columns
我做错了什么?在这种情况下我是否还必须使用临时柱?我知道通过使用临时列将数据类型从clob更改为varchar2的情况,但在这里我只想更改约束。为什么这不可能?
提前致谢!
答案 0 :(得分:1)
您正尝试将列的类型从CLOB
设置为CLOB
,但它无效,因为尝试设置对象列无效。仅使用ALTER TABLE myTable modify myClobCol NULL;
设置列的NULL约束。
答案 1 :(得分:0)
试试这个:
declare
col_nullable varchar2(1);
begin
select nullable into col_nullable
from user_tab_columns
where table_name = 'myTable'
and column_name = 'myClobCol';
if col_nullable = 'N' then
execute immediate 'alter table mytable modify (myClobCol null)';
end if;
end;