DECLARE
v_column_exists number := 0;
BEGIN
Select count(*) into v_column_exists
from user_tab_cols
where upper(column_name) = 'MyCoolColumn'
and upper(table_name) = 'MyCoolTable';
if (v_column_exists = 0) then
execute immediate 'alter table MyCoolTable add (MyCoolColumn varchar2(255))';
execute immediate 'update MyCoolTable set MyCoolColumn = 'NULL'';
end if;
end;
/
К сожалению, я получаю сообщение об ошибке oracle
ORA-06550 PLS-00103 Встречный символ «NULL» при ожидании .....
в строке:
execute immediate 'update MyCoolTable set MyCoolColumn = 'NULL'';
Я знаю, что вставляю слово «NULL», а не нулевое значение. Я добавляю этот столбец в существующую таблицу, и мне нужно сделать его Not Null и первичным ключом с двумя другими столбцами первичного ключа. Если я удалю проблемную строку, оператор будет выполнен нормально.
Я неправильно экранировал 'Null'?