PL / SQL Plus脚本只是给了我数字

我有一个PL / SQL脚本,我试图从命令shell与SQLPLUS运行。 然而,每当我去运行它,我所得到的是一个数字和一个等待一些input的光标。 当我input时,它只是增加数字,并重复该过程。 这是一个虚拟查询,做同样的事情

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"

您需要在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 Plus创build一个PL / SQL块时,'/'会告诉SQL Plus运行自从上一条命令执行以来放入缓冲区的所有内容。 你得到的递增数字是SQL * Plus给你的脚本中的下一个行号 – 它等着你告诉它你已经完成了。