как использовать параметр процедуры в запросе - PullRequest
0 голосов
/ 28 февраля 2009

как получить доступ к параметрам процедуры внутри той же процедуры, используя запрос
например: см. эту процедуру

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; 

В приведенной выше процедуре и в операторе слияния мне нужен запрос, чтобы он использовал значение параметров в качестве ссылки на таблицу и, используя эти значения, обновлял или вставлял в таблицу на основе заданного условия.

Помогите мне, пожалуйста. Заранее спасибо

Ответы [ 2 ]

1 голос
/ 02 марта 2009

Вам потребуется использовать динамический 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;

Однако вам предстоит проделать еще большую работу, поскольку все условия, обновления и вставки должны меняться в зависимости от используемых таблиц. Я не уверен, что эта закупка будет особенно полезна на самом деле.

0 голосов
/ 28 февраля 2009
...