0
我需要通過將Oracle SQL文件拆分爲兩個文件來修改Oracle SQL文件,但我對Oracle沒有經驗。這是我現在有:我需要拆分Oracle SQL腳本
linkload.bat
SQLPLUSW /nolog @linkload.txt
linkload.txt
CONNECT ABC/[email protected];
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
行,第二個文件包含之後的所有功能。我意識到這並不像將文件分開一樣簡單,並且通過無法控制的情況,我無法訪問SQLDeveloper甚至無法使用開發服務器來嘗試此操作。所以這就是爲什麼我把它帶到StackOverflow。
這就是我想出了:
linkload.bat
SQLPLUSW /nolog @linkload1.txt
SQLPLUSW /nolog @linkload2.txt
linkload1.txt
CONNECT ABC/[email protected];
spool E:\DataLoad\MovDataProductionJob\updclust.log;
select systimestamp start_time from dual;
@E:\DataUpd\UpdClust.sql
--spool off;
disconnect;
exit;
linkload2.txt
CONNECT ABC/[email protected];
-- 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
命令,如果它需要在兩個文件中。就像我之前說過的,在進入臨時環境之前,我沒有辦法測試它。對於任何反饋,我們都表示感謝。
您還需要在第二個腳本中使用spool命令,因爲這就是告訴sqlplus將SELECT的輸出保存到文件。但第二個腳本中的spool命令將需要APPEND參數,否則它將覆蓋第一個文件的輸出。 – Joe
謝謝。我做了改變,這似乎是有道理的。我已將其發送給我的組織中的DBA,以在我們的臨時數據庫上執行。 –
@Joe,我相信這是有效的。如果您想根據您的評論提交答案,我會立即投票並將其標記爲已接受。 –