Заказ струн при конкатенации в оракуле

Я использую функцию сбора для объединения строк для запроса SQL.

    select id,
    tab_to_string(CAST(COLLECT(a.level||' '||d.Number||':  
    '||to_char(nvl(de.eventDate,SYSDATE - 365 * 100))) AS t_varchar2_tab)) AS MyVar
    from Mytable
    groupby id

Результат этого запроса:

    Id    Myvar
    1     level : 27-Jan-09,level : 27-Mar-08, level : 2-Apr-10
    2     level : 7-Jun-06,level : 27-Dec-08, level : 2-Nov-08
    3     level : 27-July-10,level : 27-Mar-06, level : 2-Apr-10

Но я хочу "MYVAR» ценность бытьупорядочено по дате поле в объединенной строке

поэтому для Id = 1 вывод должен быть как

    level : 27-Mar-08, level : 27-Jan-09, level : 2-Apr-10

Ниже приведен код для функции tab_to_string

источник:http://www.oracle-base.com/articles/misc/string-aggregation-techniques.php#wm_concat
    CREATE OR REPLACE FUNCTION tab_to_string (p_varchar2_tab  IN  t_varchar2_tab,
                                      p_delimiter     IN  VARCHAR2 DEFAULT ',') 
    RETURN VARCHAR2 IS
    l_string     VARCHAR2(32767);
    BEGIN
    FOR i IN p_varchar2_tab.FIRST .. p_varchar2_tab.LAST LOOP
    IF i != p_varchar2_tab.FIRST THEN
    l_string := l_string || p_delimiter;
    END IF;
    l_string := l_string || p_varchar2_tab(i);
    END LOOP;
    RETURN l_string;
    END tab_to_string;

Я использую Oracle 10g.

Спасибо праш

Ответы на вопрос(1)

Ваш ответ на вопрос