0

PL/SQL スクリプトがあり、シェル スクリプトを使用して自動的に実行するように依頼されました。問題は、それを行う方法がわからないことです。そのため、それを行うのに役立つ方法があれば、よろしくお願いします。

私は基本を取ろうとしましたが、それは私が必要とするものとはかけ離れています:

output="$(sqlplus -S user/pw@//ip:1521/db <<ENDOFSQL
set serveroutput on;
DECLARE
    v_return PLS_INTEGER;
BEGIN

    DBMS_OUTPUT.PUT_LINE(v_return);
END;
exit;
ENDOFSQL)"

echo $output 
4

2 に答える 2

2

次のように実行できます。

sqlplus -S user/pw@//ip:1521/db <<ENDOFSQL
set serveroutput on;
DECLARE
    v_return PLS_INTEGER;
BEGIN

    DBMS_OUTPUT.PUT_LINE('Hello World');
END;
.
/

ENDOFSQL

後で出力をエコーするだけの場合は、変数に出力をキャプチャする必要はありません。

于 2015-02-05T15:00:26.093 に答える
1

シェル スクリプトを使用してそれらを自動的に実行するように依頼されました

そもそも、なぜデータベースレベルでのスクリプトの自動化を気にするのでしょうか。OSレベルでcron ジョブとしてスケジュールするだけです。

DBMS_SCHEDULERまたはを使用して、データベース レベルでスケジュールすることもできDBMS_JOBます。

于 2015-02-05T14:21:35.760 に答える