set serveroutput on;
DECLARE
message varchar2(20):= 'Hello, World!';
BEGIN dbms_output.put_line(message);
END;
/
答案 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 ;