Oracle Plsql动态选择作为参数
我有一个过程a,它将select语句作为参数,但我希望select是动态的Oracle Plsql动态选择作为参数,oracle,dynamic,plsql,bind,Oracle,Dynamic,Plsql,Bind,我有一个过程a,它将select语句作为参数,但我希望select是动态的 Proc A (query); Proc B is Declare -- try 1 using variables q varchar2(200):= 'select xy from table where col =' || var ; -- try 2 using bind q varchar2(200):= 'select xy from table where col = :v' ; Begin --
Proc A (query);
Proc B is
Declare
-- try 1 using variables
q varchar2(200):= 'select xy from table where col =' || var ;
-- try 2 using bind
q varchar2(200):= 'select xy from table where col = :v' ;
Begin
-- here i want to be able to define a variable based on certain conditions and my string q will take the variable.
A(q);
End;
这可能吗?
有人能帮忙吗
CREATE OR REPLACE PROCEDURE Proc_A (in_query varchar)
IS
BEGIN
execute immediate in_query;
END;
/
CREATE OR REPLACE PROCEDURE Proc_B
IS
col_val varchar2(60) := 'Lady Gaga';
q varchar2(200):= 'select * from test_table where char_col =''' || col_val || '''';
Begin
Proc_A(q);
End;
/
begin
Proc_B;
end;
但显然,对于选择,您需要获取结果集。DMLs插入/删除/。。。将按说明工作。只需查看本页右下角的相关部分。你会发现许多这样的答案对你有帮助。