To Convert Comma Delimited Strings to Result Set | |
We have seen Query to Convert Comma Delimited Strings to Result Set previously. Here the same has been implemented using pipelined function. It can be reused when there is a need to use comma to table conversion logic in more than one place. CREATE FUNCTION FN_CONV_COMMA_TO_RESULTSET (IN_COMMA_DELIMTED_STRING VARCHAR2) RETURN TYP_COMMA_RSLT_SET PIPELINED AS V_TYP_COMMA_RSLT_SET TYP_COMMA_RSLT_SET; BEGIN SELECT SUBSTR (COMMA_DELIMTED_STRING, INSTR (COMMA_DELIMTED_STRING, ',', 1, LEVEL) + 1, INSTR (COMMA_DELIMTED_STRING, ',', 1, LEVEL + 1) INSTR (COMMA_DELIMTED_STRING, ',', 1, LEVEL) - 1 STRINGS BULK COLLECT INTO V_TYP_COMMA_RSLT_SET FROM (SELECT ',' || IN_COMMA_DELIMTED_STRING || ',' COMMA_DELIMTED_STRING, LENGTH (IN_COMMA_DELIMTED_STRING || ',') - LENGTH (REPLACE (IN_COMMA_DELIMTED_STRING || ',', ',', '' ) ) NO_OF_STRINGS FROM DUAL) CONNECT BY LEVEL <= NO_OF_STRINGS; FOR STRING_SET IN 1 .. V_TYP_COMMA_RSLT_SET.COUNT LOOP PIPE ROW (V_TYP_COMMA_RSLT_SET (STRING_SET)); END LOOP; END FN_CONV_COMMA_TO_RESULTSET; / |
|
|
|
This function can be reused. Another way is we can create this function and type as system user and grant execute privilege to other oracle users... you feedback is appreciated... :) |
Vasudevan Krishnamoorthy
Saturday, May 12, 2012
To Convert Comma Delimited String to Result Set
Subscribe to:
Posts (Atom)