Oracle 可重复执行脚本 去除字段非空约束

一、sql演示 注意column_name = ‘ACCOUNTID’ ACCOUNTID字段名的大小写要与数据库一致

declare num number;
begin
select count(1) into num FROM all_tab_columns WHERE table_name = 'T_USER' AND nullable = 'N' AND column_name = 'ACCOUNTID';
if num=1 then
        execute immediate'ALTER TABLE T_USER MODIFY ACCOUNTID VARCHAR2(1024) null';
end if;
end;

二、sql 解释

select count(1) FROM all_tab_columns WHERE table_name = 'T_USER' AND nullable = 'N' AND column_name = 'ACCOUNTID';

该sql是查询T_USER表中ACCOUNTID字段是否非空 必填则返回1也就是查出来一条数据,否则返回0

ALTER TABLE T_USER MODIFY ACCOUNTID VARCHAR2(1024) null

该sql是将必填字段改为非必填

你可能感兴趣的:(oracle,数据库)