Oracle

PL/SQL Plus 腳本只給了我數字

  • October 13, 2010

我有一個 PL/SQL 腳本,我正在嘗試使用 SQLPLUS 從命令 shell 執行它。但是,每當我執行它時,我得到的只是一個數字和一個等待輸入的游標。當我按 Enter 鍵時,它只會增加數字並重複該過程。這是一個做同樣事情的虛擬查詢

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;

從我使用的命令外殼執行它: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 創建 PL/SQL 塊時*,’/’ 告訴 SQL* Plus 執行自上次執行命令以來放入緩衝區的所有內容。您獲得的遞增數字是 SQL*Plus 為您提供腳本中的下一個行號 - 它正在等待您告訴它您已完成。

引用自:https://serverfault.com/questions/190261