如果您添加新列并使用动态 SQL 在新列中更新/插入数据,那么它将起作用。例子 -
begin
execute immediate 'ALTER TABLE table_name ADD column_name column-definition';
execute immediate 'update table_name set column_name =''sample-data''';
COMMIT ;
end;
Run Code Online (Sandbox Code Playgroud)
但是,如果您使用动态 SQL 添加新列并使用静态 SQL 更新/插入,则会抛出错误消息。
原因 - 静态 SQL 在执行之前经过验证。
例子 -
begin
execute immediate 'ALTER TABLE table_name ADD column_name column-definition';
update table_name set column_name ='sample-data';
COMMIT ;
end;
Run Code Online (Sandbox Code Playgroud)