Nik*_*ita 3 sql oracle plsql execute-immediate
是否可以在一个EXECUTE IMMEDIATE块中执行一些sql命令?
这种语法有什么问题:
declare
pragma autonomous_transaction;
begin
execute immediate
'begin
COMMENT ON TABLE t1 IS ''description1'';
COMMENT ON TABLE t2 IS ''description2'';
end;';
end;
Run Code Online (Sandbox Code Playgroud)
对于一个SQL命令,它工作正常:
declare
pragma autonomous_transaction;
begin
execute immediate ' COMMENT ON TABLE t1 IS ''description1'' ';
end;
Run Code Online (Sandbox Code Playgroud)
该begin end字符串中执行立即将被视为一个PL/SQL匿名块.DDL,例如COMMENTPL/SQL中不允许的.如果是这样你就不需要使用execute immediate.Oracle基本上可以同时使用PL/SQL语句块或单个SQL语句.虽然也有批处理SQL语句的API.
因此,要COMMENT在PL/SQL块或过程中运行,您需要使用execute immediate语句.
如果没有更多的上下文,我无法智能地评论这是否是正确的方法,或者只是将两个评论声明放在一起会更好.
| 归档时间: |
|
| 查看次数: |
5425 次 |
| 最近记录: |