To resolve this, you should stop joining to t_test, and instead return
all columns values from the stored procedure.
create procedure pr_insert_test(i_test_descr varchar(30)) returns
(o_test_id integer, o_test_descr varchar(30)) AS
begin
insert into t_test(test_id, test_descr) values (gen_id(seq_test, 1),
:i_test_descr)
returning test_id, test_descr into :o_test_id, :o_test_descr;
suspend;
end
You could even change the table to use an identity column:
create table t_test (
test_id integer generated always as identity
constraint pk_test primary key(test_id),
test_descr varchar(30)
)
You no longer need the separate sequence, and the insert can then become:
insert into t_test(test_descr) values (:i_test_descr)
returning test_id, test_descr into :o_test_id, :o_test_descr;
Mark
--
Mark Rotteveel