带有参数的pl sql游标

时间:2017-12-27 16:10:42

标签: oracle plsql

假设我有一个带有用户输入参数的过程。

Create procedure Match_Record(v_match_ID)

Cursor match is
Select *
From table A
Where not exists(select ‘bbb’ from table B
                              Where a. v_match_ID = b. v_match_ID);

它不会编译,因为v_match_ID不是有效的标识符。

那么立即执行是唯一的选择吗?

1 个答案:

答案 0 :(得分:1)

  

“我正在尝试传递列名”

在这种情况下,是的,您需要使用动态SQL。可能你需要打开游标变量而不是execute immediate

Create procedure Match_Record(v_match_ID)
    ... 
    rc sys_refcursor;
begin
    open rc for 
        'Select *
         From table A
         Where not exists(select blah from table B
                           Where a.'||v_match_ID||' = b.'|| v_match_ID||')';