我正在尝试在SQL PLus上执行脚本,这很简单.
SET serveroutput ON;
DECLARE
mode NUMBER(1) := 1;
IF (mode = 1) THEN
prompt 'HERE'
END IF;
prompt 'fim'
Run Code Online (Sandbox Code Playgroud)
我在使用sqlplus user/pw@db和@myscript.sql成功连接后使用SQLPlus调用脚本.但输出对我来说很奇怪:
Conectado a:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @myscript.sql
9
10
11
Run Code Online (Sandbox Code Playgroud)
它会继续无限期地打印这个序列.我究竟做错了什么?
Ale*_*ole 10
从您编辑的问题...您必须/使用新行终止PL/SQL块以使其结束并运行,否则SQL*Plus将继续提示更多行代码(这是您看到的数字).该文档显示了如何运行PL/SQL块.并且prompt是一个SQL*Plus命令,因此您无法在PL/SQL块中使用它.您也没有正确的块语法:
SET serveroutput ON;
DECLARE
mode NUMBER(1) := 1;
BEGIN
IF mode = 1 THEN
DBMS_OUTPUT.PUT_LINE('HERE');
END IF;
END;
/
prompt fim
Run Code Online (Sandbox Code Playgroud)