Я никогда не пробовал использовать функцию val local (); в моих собственных хранимых процедурах я просто делаю SELECT после вставки. Но у вас может быть хранимая процедура, возвращающая набор результатов:
create procedure proc1(
IN in_val
)
language sql
dynamic result sets 1
BEGIN
-- do insert
BEGIN
DECLARE c_out CURSOR WITH RETURN TO CLIENT FOR
select max(key) as inserted_key from table where val = in_val
FOR READ ONLY;
OPEN c_out;
END;
END;
Возможно, вы можете использовать identity val local, заменив select на «select identity val local () из sysibm.sysdummy1». Кажется, я не могу заставить подчеркивание работать в уценке, но, надеюсь, это понятно.