У меня есть довольно простая хранимая процедура DB2, где я беру строку параметра и вставляю ее в таблицу, которая прекрасно работает, но мне действительно нужно ее расширить. В настоящее время это выглядит так:
IN_TAG_DATA
P1 : BEGIN ATOMIC
INSERT INTO SCHEMA.TAGS(TAG_DATA)
VALUES(IN_TAG_DATA);
END P1
То, что мне нужно сделать сейчас, это поместить в тот же строковый параметр, но на основе этого параметра, мне нужно проверить, существует ли имя, и если да, выбрать / вернуть его идентификатор. Если он не существует, мне нужно вставить его, а затем вернуть созданный идентификатор.
Как мне изменить это, чтобы получить соответствующую функцию здесь?
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