【发布时间】:2019-09-06 22:32:23
【问题描述】:
我有一个非常简单的 DB2 存储过程,我在其中接收一个参数字符串并将其插入到一个表中,它工作正常,但我确实需要扩展它。目前它看起来像这样:
IN_TAG_DATA
P1 : BEGIN ATOMIC
INSERT INTO SCHEMA.TAGS(TAG_DATA)
VALUES(IN_TAG_DATA);
END P1
我现在需要做的是放入相同的字符串参数,但基于该参数,我需要检查名称是否已经存在,如果存在则选择/返回它的 id。如果它不存在,我需要插入它,然后返回创建的 ID。
我应该如何改变它以便在此处获得适当的功能?
IN_TAG_DATA
OUT_TAG_ID
P1 : BEGIN ATOMIC
DECLARE V_TAG_ID INTEGER;
SELECT CAST(NEXT VALUE FOR SCHEMA . TAG_ID_SEQ AS INTEGER)
INTO V_TAG_ID
FROM SYSIBM . SYSDUMMY1;
/*
IF EXISTS BASED ON IN_TAG_DATA, GET ID ELSE INSERT AND RETURN created ID
*/
SET OUT_TAG_ID
END P1
【问题讨论】:
标签: sql stored-procedures db2