使用基本的SQL,我從另一個數據庫填充表。這使用基本的Delete
語句使用DBLink刪除舊數據和Insert
語句,並使用FROM
子句。我試圖在此轉移到一個包,並想出了這一點:PL/SQL運行簡單的SQL命令
套餐:
CREATE OR REPLACE
PACKAGE LOADDATA AS
procedure POPULATETABLE;
END LOADDATA;
PL/SQL(包主體):
CREATE OR REPLACE
PACKAGE BODY LOADDATA AS
procedure POPULATETABLE AS
BEGIN
DELETE FROM DATATRANSFER;
INSERT INTO DATATRANSFER
SELECT VALUENUM, DATACONTENT, sysdate AS TRANSFER_DATA
FROM [email protected];
COMMIT;
NULL;
END POPULATETABLE;
END LOADDATA;
並運行命令,我會運行:
exec LOADDATA.POPULATETABLE();
我的問題是該過程應該有一個輸入/輸出參數或聲明的變量?它已編譯並正確工作,但我不確定我是否遵循PL/SQL方法。
你不必有輸入/輸出參數或除非需要聲明的變量。記錄DELETE FROM。我不確定我是否想要,如果它是可以從遠程源重新加載的表。當然,有時候截斷不是沒有特權的選擇。不知道NULL是什麼;聲明是關於。 –
null是作爲模板提供的。我通過SQL Developer創建的,所以它在那裏,我沒有刪除它。它看起來沒有什麼區別,它應該被刪除嗎? – Dev
有時一個NULL;在沒有編寫代碼的情況下需要聲明,但編譯器需要聲明。但在這個例子中NULL;聲明沒有任何用處。我會刪除它。 –