使用基本的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;声明没有任何用处。我会删除它。 –