Oracle 参数处于条件中的Pl sql游标
假设我有一个带有用户输入参数的过程Oracle 参数处于条件中的Pl sql游标,oracle,plsql,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不是有效的标识符 那么,executeim
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不是有效的标识符
那么,executeimmediate是这里唯一的选项吗
“我正在尝试传递列名”
在这种情况下,是的,您需要使用动态SQL。您可能需要打开一个游标变量,而不是执行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||')';
您是要在此处传入列名还是文字?如果
V\u MATCH\u ID
是一个列名,那么是的,您需要使用execute immediate(或DBMS\u SQL)。@Ben是的,我正在尝试传递列名。我不知道要将此作为重复项来结束,因为您可能要做的事情太多了,但这里有一些相关的问题:,