【发布时间】:2022-01-03 13:52:42
【问题描述】:
我有一个启用 ORDS 的架构,它接受批量 JSON 记录并将它们一一拆分,然后将它们一一插入到 UEM 表中。
我尝试创建一个触发器,该触发器获取最后插入的行的 id 并使用该值插入另一个表。问题是,下面的触发器只获取并插入最后插入的行的id,而且只插入1次。
更具体:
-
ORDS 获取包含 4 条记录的批量 JSON 有效负载。
-
POST 处理程序启动一个通过换行符拆分这 4 条记录的过程,并立即使用 “按级别连接” 将这些记录作为 4 行单独插入到 UEM 表的 CLOB 列中。还有自动创建和递增的 ID 列。
-
同时,我还想获取这些行的 ID 并在另一个表插入中使用它。我在下面创建了复合触发器,但是这个触发器只检索最后一条记录的 ID,并且只插入一行。
你认为它为什么会这样?最后,程序“插入”了 4 条记录。
CREATE OR REPLACE TRIGGER TEST_TRIGGER5
FOR INSERT ON UEM
COMPOUND TRIGGER
lastid NUMBER;
AFTER STATEMENT IS
BEGIN
SELECT MAX(ID) INTO lastid FROM UEM;
INSERT INTO SPRINT1 (tenantid, usersessionid, newuser, totalerrorcount, userid) VALUES ('deneme', 'testsessionid', 'yes', lastid, 'asdasfqwqwe');
END AFTER STATEMENT;
END TEST_TRIGGER5;
【问题讨论】:
标签: sql oracle rest plsql triggers