create or replace function StringToVarcharTable( inputList in varchar2 ) return VarcharTableType
as
v_str long default inputList || ',';
v_n varchar2(200);
v_data VarcharTableType := VarcharTableType();
begin
loop
v_n :=instr( v_str, ',' );
exit when (v_n is null);
v_data.extend;
v_data( v_data.count ) := ltrim(rtrim(substr(v_str,1,v_n-1)));
v_str := substr( v_str, v_n+1 );
end loop;
return v_data;
end;
3. 用如下的语句去实现例句;
Select A.* from table_name A,(SELECT DISTINCT (COLUMN_VALUE) XUESHENDID FROM TABLE(STRINGTOVARCHARTABLE(:Condition))) B Where A.XUESHENGID =B. XUESHENGID;
在oracle 10G下测试通过..
写完这篇文章很惭愧,ASKTOM已经给出一个完整的solution,特附后,供参考.
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:210612357425
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30193/viewspace-707996/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30193/viewspace-707996/