0

Oracle SQL ファイルを 2 つのファイルに分割して変更する必要がありますが、Oracle の経験はありません。これが私が今持っているものです:

linkload.bat

SQLPLUSW /nolog @linkload.txt

linkload.txt

CONNECT ABC/abcnumber1s2@defghi2;

spool E:\DataLoad\MovDataProductionJob\updclust.log;

select systimestamp start_time from dual;

@E:\DataUpd\UpdClust.sql

-- call load_schedule();

select systimestamp updclust_end_time from dual;

----comment/ uncomment following for disabling/ enabling load or schedule load depends on count

 call load_schedule_10G();

select systimestamp end_time from dual;

--spool off;

disconnect;

exit;

linkload.txt を分割して、最初のファイルにはその@E:\DataUpd\UpdClust.sql行までの機能が含まれ、2 番目のファイルにはそれ以降のすべての機能が含まれるようにする必要があります。ファイルを分割するだけでは簡単ではないことを認識しています。また、どうしようもない状況では、これを試すための SQLDeveloper や開発サーバーにアクセスすることさえできません。だからこそ、私はそれを StackOverflow に持ち込んでいます。

これが私が思いついたものです:

linkload.bat

SQLPLUSW /nolog @linkload1.txt
SQLPLUSW /nolog @linkload2.txt

linkload1.txt

CONNECT ABC/abcnumber1s2@defghi2;

spool E:\DataLoad\MovDataProductionJob\updclust.log;

select systimestamp start_time from dual;

@E:\DataUpd\UpdClust.sql

--spool off;

disconnect;

exit;

linkload2.txt

CONNECT ABC/abcnumber1s2@defghi2;

-- call load_schedule();

select systimestamp updclust_end_time from dual;

----comment/ uncomment following for disabling/ enabling load or schedule load depends on count

call load_schedule_10G();

select systimestamp end_time from dual;

disconnect;

exit;

それは正しいように見えますか?私が最も確信が持てないのは、spoolコマンドと、それが両方のファイルにある必要があるかどうかです。前に言ったように、ステージング環境に入る前にこれをテストする方法がありません。フィードバックをいただければ幸いです。

4

1 に答える 1

1

2 番目のスクリプトにも spool コマンドが必要です。これは、SELECT の出力をファイルに保存するように sqlplus に指示するためです。ただし、2 番目のスクリプトのスプール コマンドには APPEND パラメータが必要です。そうしないと、最初のファイルからの出力が上書きされます。

于 2013-10-25T17:47:12.370 に答える