如何使用查询来访问同一过程中的过程参数
例如:参见此程序
procedure game(left in tab.left%type,right in tab.right%type,...)
is
--some local variables
begin
merge into tgt_table
using subquery --(here is what i need to use the parameters)
on some condition
when matched then
update the tgt table
when not matched then
insert the table;
end game;
在上面的过程和merge语句中,我需要一个查询,使得它使用参数值作为表引用,并使用这些值根据给定的条件更新或插入表中。
请帮帮我。提前致谢
答案 0 :(得分:1)
如果参数定义了要使用的表,则需要使用动态SQL,例如:
procedure game(left in tab.left%type,right in tab.right%type,...)
is
--some local variables
l_sql long;
begin
l_sql := 'merge into tgt_table'
|| ' using ' || left
|| ' on some condition'
|| ' when matched then'
|| ' update ' || right
|| ' when not matched then'
|| ' insert the table';
execute immediate l_sql;
end game;
但是,您还有很多工作要做,因为条件,更新和插入子句都需要根据使用的表进行更改。我不相信这种采购事实上会特别有用。
答案 1 :(得分:0)