Oracle
PL/SQL Plus 腳本只給了我數字
我有一個 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 為您提供腳本中的下一個行號 - 它正在等待您告訴它您已完成。