oracle pl /sql集合ORA-00922:设置服务器输出时缺少选项或选项无效;

xhv8bpkk  于 2023-01-01  发布在  Oracle
关注(0)|答案(4)|浏览(495)
set serveroutput on;

DECLARE 
 message varchar2(20):= 'Hello, World!';

BEGIN dbms_output.put_line(message); 
END; 
/
zkure5ic

zkure5ic1#

正如其他人指出的那样,“set server output on”是一个SQL*Plus命令。如果需要在plsql中使用该功能,则需要查找DBMS_OUTPUT. ENABLE。上面的代码块将变为:

declare 
  message varchar2(20) := 'Hello World';
begin 
  dbms_output.enable;
  dbms_output.put_line(message);
end ;
hrysbysz

hrysbysz2#

如果使用SQL*plus,则此代码工作正常。

[oracle@krw-sql-ora12-01 ~]$ sqlplus scott/tiger

SQL*Plus: Release 11.2.0.3.0 Production on Fri Feb 22 08:07:25 2019

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> set serveroutput on;

SQL> DECLARE
  2   message varchar2(20):= 'Hello, World!';
  3  BEGIN dbms_output.put_line(message);
  4  END;
  5  /
Hello, World!

PL/SQL procedure successfully completed.

SQL>
57hvy0tb

57hvy0tb3#

您似乎在PL/SQL过程(或匿名块)中使用了SET SERVEROUTPUT ON,例如

SQL> begin
  2    set serveroutput on;
  3  end;
  4  /
  set serveroutput on;
      *
ERROR at line 2:
ORA-06550: line 2, column 7:
PL/SQL: ORA-00922: missing or invalid option
ORA-06550: line 2, column 3:
PL/SQL: SQL Statement ignored

SQL>

也许你没有把你真正拥有的一切都发布出来; SET命令是否是 * 更大 * 过程的一部分?如果是,请将其删除。

au9on6nz

au9on6nz4#

你提到你正在使用蟾蜍。你必须使用 lightning 而不是绿色三角形。将鼠标悬停在这两个图标上。你会看到绿色三角形说:在插入符号处执行/编译语句。您将看到 lightning 显示:作为脚本执行。

相关问题