我需要PL / SQL的帮助。如何使用带有IN数据类型的变量(在我的情况下,这个变量涉及3个VARCHAR2元素)和IN运算符,而不使用索引访问? 实施例
select field1
from dual
where field1 in (myTableVariable);
myTableVariable必须从函数返回。
未完成功能:
declare
v_string varchar2(100);
v_string2 varchar2(100);
TYPE V_ARRAY IS TABLE OF VARCHAR2(10)
INDEX BY BINARY_INTEGER;
result V_ARRAY;
n number;
begin
n := 1;
v_string := '13,15,02';
while v_string != ' ' loop
select regexp_substr(v_string, '^[a-z0-9]*', 1),
regexp_replace(v_string, '^[a-z0-9]*(,|$)', '')
into v_string2, v_string
from dual;
result(n) := v_string2;
n := n + 1;
dbms_output.put_line(v_string2);
end loop;
return result;
end;
答案 0 :(得分:2)
<强>首先强>
在架构级别(即不在包中)声明您的表数据类型。
,然后强>
select field1
from dual
where feld1 in (select column_value from table(myTableVariable));
享受!