Monday, 22 October 2012

Varying elements in IN list

varying elements in IN list of query

Create or replace type myTableType as table of varchar2(5);  /or Number/

Create or replace function str2tbl( p_str in varchar2 )
 Return myTableType
as
l_str long default p_str || ',';
l_n number;
l_data myTableType := myTabletype();
Begin
Loop
 l_n := instr( l_str, ',' );
 exit when (nvl(l_n,0) = 0);
 l_data.extend;
 l_data( l_data.count ) := ltrim(rtrim(substr(l_str, 1, l_n-1)));
 l_str := substr( l_str, l_n+1 );
End loop;

 Return l_data;

End str2tbl;
 
select *from THE ( select cast( str2tbl('1, S, 3, 5, 6') as mytableType ) from dual) ;

Column_value
1
S
3
4
5

Ref. http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:110612348061

No comments:

Post a Comment