为了将list作为“ IN”类型的sql语句中的参数处理,Oracle的Tom设计了一种解决方案。
ops$tkyte@8i> create or replace type myTableType as table of number;
2 /
Type created.
ops$tkyte@8i> create or replace function str2tbl( p_str in varchar2 ) return myTableType
2 as
3 l_str long default p_str || ',';
4 l_n number;
5 l_data myTableType := myTabletype();
6 begin
7 loop
8 l_n := instr( l_str, ',' );
9 exit when (nvl(l_n,0) = 0);
10 l_data.extend;
11 l_data( l_data.count ) := ltrim(rtrim(substr(l_str,1,l_n-1)));
12 l_str := substr( l_str, l_n+1 );
13 end loop;
14 return l_data;
15 end;
16 /
是否可以在sql语句中执行此操作,即不使用Pl / Sql。
[完整链接:https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:110612348061]
而且,我只能选择语句...