Sql 执行立即dbms_output.put_行

Sql 执行立即dbms_output.put_行,sql,oracle,plsql,oracle-sqldeveloper,Sql,Oracle,Plsql,Oracle Sqldeveloper,我有这样的代码: set serveroutput on declare v_str varchar2(200); begin v_str := q'!dbms_output.put_line('Hello world');!'; Execute immediate v_str; end; Oracle SQL Developer说有无效的SQL语句,有什么问题 declare v_str varchar2(200); begin v_str := q'!begin dbms_output.

我有这样的代码:

set serveroutput on

declare
v_str varchar2(200);
begin
v_str := q'!dbms_output.put_line('Hello world');!';
Execute immediate v_str;
end;
Oracle SQL Developer说有无效的SQL语句,有什么问题

declare
v_str varchar2(200);
begin
v_str := q'!begin dbms_output.put_line('Hello world'); end;!';
Execute immediate v_str;
end;
/

工作…

基本上,答案是
dbms\u输出
是一个过程,因此只能在PL/SQL块中执行。@Ben-实际上是对已删除答案的评论的回复,但在这里仍然相关;
q
语法在下的文档中。使用
show err
打印错误的详细信息。是否有特殊原因需要使用动态PL/SQL调用dbms\u输出?