建立測試表
create table DB2INST1.PROC_RUN_LOG(
ETL_DT varchar(8) not null,
PROC_NAME varchar(50) not null,
RUN_TIME timestamp
);
建立測試存儲過程
#PROC_TEST1
CREATE PROCEDURE "DB2INST1"."PROC_TEST1" (ETL_DT varchar(8))
LANGUAGE SQL
BEGIN
insert into DB2INST1.PROC_RUN_LOG values(ETL_DT,'DB2INST1.PROC_TEST1',current timestamp);
END
#PROC_TEST2
CREATE PROCEDURE "DB2INST1"."PROC_TEST2" (ETL_DT varchar(8),OUT LOGCOUNT int)
LANGUAGE SQL
BEGIN
declare sqlcode INTEGER DEFAULT 0;
declare sqlstate CHAR(5);
declare v_step int;
declare err_text varchar(1024);
declare message_text varchar(1024);
-- 定義異常處理
declare exit handler for SQLEXCEPTION
begin
get diagnostics exception 1 err_text = message_text;
set message_text=trim('v_step='||char(v_step))||' '||substr(err_text,1,8)||substr(err_text,locate('"',err_text)-1);
SIGNAL SQLSTATE '72342' SET message_text=message_text;
end;
set v_step=1;
insert into DB2INST1.PROC_RUN_LOG values('20190407','DB2INST1.PROC_TEST1',current timestamp);
select count(1) into LOGCOUNT from DB2INST1.PROC_RUN_LOG;
END
PROC_TEST1對應的DS(存儲過程隻帶輸入參數)
(1)配置DS參數

(2)引用相關stage
(3)配置Stored_Procedure_0
Genaral标簽下,選擇資料庫類型,配置資料庫名,使用者名,密碼
Syntax标簽下,配置存儲過程名及調用文法
(3)編譯運作作業即可
PROC_TEST2對應的DS(存儲過程帶輸入輸出參數)
(1)配置DS參數

(2)引用相關stage
(3)配置Stored_Procedure_0
Genaral标簽下,選擇資料庫類型,配置資料庫名,使用者名,密碼
Syntax标簽下,配置存儲過程名及調用文法
Out-->Columns列下添加輸出列(如有多個輸出列時,在此配置全部輸出列的名稱)
Stage-->Parameters下配置映射關系(如果有多個輸出列時,在此配置多行映射)
儲存編譯運作作業即可