如何从 DB2 触发器调用 RPGLE 程序?
How do I call RPGLE program from a DB2 trigger?
我有一个 table IMGMAST
,在插入时,我想调用 RPGLE 程序 IMGCRT
来处理插入的记录。
程序接受 1 个 Char(12) 参数(table 的 id)
这是我目前得到的:
CREATE TRIGGER PROCESS_NEW_IMG
AFTER INSERT IN IMGMAST
REFERENCING NEW AS NEW_ROW
FOR EACH ROW BEGIN ATOMIC
CALL IMGCRT(NEW_ROW.ID)
END
但是我无法创建触发器,因为它说找不到 IMGCRT
程序。我尝试向其中添加库,但仍然找不到它。
我需要在 CREATE PROCEDURE
中结束通话吗?
是的,您需要定义一个指向 RPG 的外部 SQL 存储过程...
CREATE PROCEDURE IMGCRT (IN ID INTEGER)
LANGUAGE RPGLE
PARAMETER STYLE GENERAL
FENCED
MODIFIES SQL DATA
EXTERNAL IMGCRT
PROGRAM TYPE MAIN
我有一个 table IMGMAST
,在插入时,我想调用 RPGLE 程序 IMGCRT
来处理插入的记录。
程序接受 1 个 Char(12) 参数(table 的 id)
这是我目前得到的:
CREATE TRIGGER PROCESS_NEW_IMG
AFTER INSERT IN IMGMAST
REFERENCING NEW AS NEW_ROW
FOR EACH ROW BEGIN ATOMIC
CALL IMGCRT(NEW_ROW.ID)
END
但是我无法创建触发器,因为它说找不到 IMGCRT
程序。我尝试向其中添加库,但仍然找不到它。
我需要在 CREATE PROCEDURE
中结束通话吗?
是的,您需要定义一个指向 RPG 的外部 SQL 存储过程...
CREATE PROCEDURE IMGCRT (IN ID INTEGER)
LANGUAGE RPGLE
PARAMETER STYLE GENERAL
FENCED
MODIFIES SQL DATA
EXTERNAL IMGCRT
PROGRAM TYPE MAIN