Oracle
Toad for Oracle:過程、包、作業和 DBMS_SCHEDULER
如果我有大約 10 個包含子查詢的查詢,將所有這些查詢包含在一個過程中是否是一種最佳做法?此腳本創建報告所需數據的一小部分。
DROP TABLE TEST1; CREATE TABLE TEST1 AS ( SELECT C.DATE, C.ITEM, (SELECT name FROM name_codes WHERE code = C.DEPARTMENT) AS DEPARTMENT, C.BUSINESS FROM LOGS C));
這只是其中的一小部分,但程式碼或多或少會創建表、過濾欄位並組合輸出,直到獲得所需的結果。我也希望為其他腳本自動輸入數據。每個腳本都會計算一個 KPI,並且是它自己的過程。然後所有這些程序將被包裝到一個包中。
該軟體包將通過
DBMS_SCHEDULER
. 這聽起來像是正確的做法嗎?如果是這樣,我可以呼叫現有腳本來創建過程還是需要將 PLSQL 粘貼到過程腳本中?目前,我只想將第一個腳本作為一個程序來測試,該程序通過DBMS_SCHEDULER
.
如果是這樣,我可以呼叫現有腳本來創建過程還是需要將 PLSQL 粘貼到過程腳本中?
兩者都有效。
作業的類型 (
job_type
) 可以是PLSQL_BLOCK
或STORED_PROCEDURE
也可以。對於
PLSQL_BLOCK
,您可以指定一個匿名塊,一段 PL/SQL 程式碼,例如begin ... end;
.對於
STORED_PROCEDURE
,您可以指定要呼叫的儲存過程的名稱。