понедельник, 6 июня 2011 г.

Comma_to_table & table_to_comma

Есть удобное средство для создания небольших виртуальных таблиц со значениями, взятыми из строкового выражения с "," в качестве разделителя.
DECLARE
  l_list1   VARCHAR2(50) := 'A,B,C,D,E,F,G,H,I,J';
  l_list2   VARCHAR2(50);
  l_tablen  BINARY_INTEGER;
  l_tab     DBMS_UTILITY.uncl_array;
BEGIN
  DBMS_OUTPUT.put_line('l_list1 : ' || l_list1);

  DBMS_UTILITY.comma_to_table (
     list   => l_list1,
     tablen => l_tablen,
     tab    => l_tab);

  FOR i IN 1 .. l_tablen LOOP
    DBMS_OUTPUT.put_line(i || ' : ' || l_tab(i));
  END LOOP;

  DBMS_UTILITY.table_to_comma (
     tab    => l_tab,
     tablen => l_tablen,
     list   => l_list2);

  DBMS_OUTPUT.put_line('l_list2 : ' || l_list2);
END;

Результат:
l_list1 : A,B,C,D,E,F,G,H,I,J
1 : A
2 : B
3 : C
4 : D
5 : E
6 : F
7 : G
8 : H
9 : I
10 : J
l_list2 : A,B,C,D,E,F,G,H,I,J
Отсюда.

Комментариев нет:

Отправить комментарий