PL/SQL Plus 脚本只给我数字

PL/SQL Plus 脚本只给我数字

我有一个 PL/SQL 脚本,我正尝试使用 SQLPLUS 从命令 shell 运行它。但是,每当我运行它时,我得到的只是一个数字和一个等待输入的光标。当我按下回车键时,它只会增加数字并重复该过程。这是一个执行相同操作的虚拟查询

set serveroutput on

DECLARE
    cursor getServerTime IS
        SELECT sysdate as t  from dual;

    myTime getServerTime%ROWTYPE;
BEGIN
    open getServerTime;

    FETCH getServerTime into myTime;

    dbms_output.put_line(myTime.t);

    close getServerTime;
END;

要从命令 shell 运行它,我使用:sqlplus me/myPass@myDB @"dummy.sql"

答案1

您需要在 END; 之后用第一列包含“/”的另一行来终止脚本,因此:

set serveroutput on

DECLARE
    cursor getServerTime IS
        SELECT sysdate as t  from dual;
    myTime getServerTime%ROWTYPE;
BEGIN
    open getServerTime;
    FETCH getServerTime into myTime;
    dbms_output.put_line(myTime.t);
    close getServerTime;
END;
/

通过 SQL 创建 PL/SQL 块时另外,“/”告诉 SQL加上运行自上次执行命令以来放入缓冲区的所有内容。您获得的递增数字是 SQL*Plus 为您提供脚本中的下一个行号 - 它正在等待您告诉它您已完成。

相关内容