我正在使用Oracle Sql Developer编写一个存储过程,它接受由“,”(动态 sql )分隔的值列表,并在“ in ”子句中使用此变量从表中触发查询。
但我最终遇到了一个错误
@p_case_nbr varchar2(100),
错误(4,5):PLS-00103:在预期以下情况之一时遇到符号“@”:当前删除之前存在
使用的 SP:
create or replace
procedure TEST_PROC
(
@p_case_nbr varchar2(100),
p_out_case_nbr out varchar2
)
as
cursor test_cur is
select t.COLUMN1
from test_table t
where t.column1 in (@p_case_nbr);
test_cur_line test_cur%ROWTYPE;
begin
p_out_case_nbr := null;
open test_cur;
LOOP
FETCH test_cur INTO test_cur_line;
EXIT WHEN test_cur%NOTFOUND;
p_out_case_nbr := p_out_case_nbr || ' ' || test_cur_line.COLUMN1;
dbms_output.put_line(test_cur_line.COLUMN1);
end loop;
close test_cur;
dbms_output.put_line('Final Value ' || p_out_case_nbr);
dbms_output.put_line('SP Completed Succesfully');
end;