pl / sql设置ORA-00922:在set serveroutput上缺少或无效的选项;

时间:2019-02-22 04:50:33

标签: oracle plsql

set serveroutput on;

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

BEGIN dbms_output.put_line(message); 
END; 
/

3 个答案:

答案 0 :(得分:1)

如果使用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>

答案 1 :(得分:0)

似乎您在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命令是更大过程的一部分吗?如果是这样,将其移出。

答案 2 :(得分:0)

正如其他人指出的那样,“将服务器输出设置为打开”是一个SQL * Plus命令。如果需要在plsql中使用该功能,则需要的是DBMS_OUTPUT.ENABLE。您上面的代码块将变为:

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