我使用以下sql代码在从其他表派生后将数据插入表中。我对高级PL / SQL并不陌生。我想构建一个存储过程,实现与此SQL代码相同的功能。我的想法是,我将只执行该过程,它将加载数据而不是一次又一次地运行此代码。我尝试了一些例子,但都编译错误,大多数例子都是SQL服务器格式。
Insert into TABLE(ID,NBR,VALUE,DESCRIPTION,STATUS,FILLER,SOURCE_SYSTEM,DATE_LOADED_TIMESTAMP)
SELECT SUBSTR(COLUMN1,1,2) as ID,
SUBSTR(COLUMN1,3,3) as NBR,
SUBSTR(COLUMN1,6,14) as VAUE,
SUBSTR(COLUMN1,20,30) as DESCRIPTION,
SUBSTR(COLUMN1,50,1) as STATUS,
SUBSTR(COLUMN1,51,2) as FILLER,
SOURCE_SYSTEM as SOURCE_SYSTEM,
CURRENT_TIMESTAMP AS DATE_LOADED_TIMESTAMP
from TMP_TABLE;
答案 0 :(得分:0)
This may help you:
create or replace procedure your_procedure_name
as
begin
Truncate table TABLE;
Insert into TABLE(ID,NBR,VALUE,DESCRIPTION,STATUS,FILLER,SOURCE_SYSTEM,DATE_LOADED_TIMESTAMP)
SELECT SUBSTR(COLUMN1,1,2) as ID,
SUBSTR(COLUMN1,3,3) as NBR,
SUBSTR(COLUMN1,6,14) as VAUE,
SUBSTR(COLUMN1,20,30) as DESCRIPTION,
SUBSTR(COLUMN1,50,1) as STATUS,
SUBSTR(COLUMN1,51,2) as FILLER,
SOURCE_SYSTEM as SOURCE_SYSTEM,
CURRENT_TIMESTAMP AS DATE_LOADED_TIMESTAMP
from TMP_TABLE;
COMMIT;
end;
Test with:
BEGIN
your_procedure_name;
END;