SQLPLUSを使用してコマンドShellから実行しようとしているPL/SQLスクリプトがあります。ただし、実行しようとすると、返されるのは数値とカーソルだけで、入力を待っています。 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を介してPL/SQLブロックを作成する場合さらに、「/」はSQLに指示します Plusは、最後のコマンドの実行以降にバッファに入れたすべてのものを実行します。取得する増分番号はSQL * Plusであり、スクリプトの次の行番号を提供します。完了したことを通知するのを待っています。