Supprime la contrainte not null d'une colonne dont le nom de la contrainte n'est pas connue. Spécifique à Oracle

 1-- suppression de la contrainte not null du champs mon_schema.ma_table.mon_champs
 2declare
 3    fName varchar2(255 char);
 4begin
 5    SELECT x.constraint_name into fName FROM all_constraints x
 6                                             JOIN all_cons_columns c ON
 7                                c.table_name = x.table_name AND c.constraint_name = x.constraint_name
 8    WHERE x.table_name = 'ma_table' AND x.OWNER='mon_schema' AND x.constraint_type = 'C' AND c.column_name ='mon_champs';
 9
10    if fName is not null THEN
11       execute immediate 'ALTER TABLE "mon_schema"."ma_table" DROP CONSTRAINT ' || fName;
12    end if;
13end;
14/