Преобразование строки (или столбца) с разделителями в строки в Oracle с помощью предварительно определенной системной функции - PullRequest
3 голосов
/ 29 апреля 2011

Несколько лет назад в Oracle 10 или 9 я использовал функцию, похожую на «DBMS_COL_2_VAL» (это определенно не правильная функция).

Цель этой встроенной функции - преобразовать предоставленную строку в строки на основе указанного разделителя. Я знаю, что существует несколько способов преобразования строки с разделителями в строки, но мне нужна именно эта функция.

Если вы можете помочь, это было бы здорово.

Пожалуйста, не предоставляйте никаких решений с CONNECT, CASE или REGEX.

Спасибо

Ответы [ 2 ]

7 голосов
/ 08 июля 2011

Функция, которую я пытался найти, была SYS.DBMS_DEBUG_VC2COLL.

Технически говоря, он не преобразует строку с разделителями в столбец, но преобразует список значений через запятую в строки. Я понял, что после того, как я нашел старый пост .

Пример кода и результаты:

with test as  (
    select column_value AS c1  
      from table( SYS.DBMS_DEBUG_VC2COLL( 'a','b','c' ) )  
   )  
 select * from test;

Результат:

c1   
__  
a    
b    
c    
2 голосов
/ 29 апреля 2011

Может, думаешь об этом?

DBMS_UTILITY.COMMA_TO_TABLE ( 
   list   IN  VARCHAR2,
   tablen OUT BINARY_INTEGER,
   tab    OUT uncl_array); 

DBMS_UTILITY.COMMA_TO_TABLE ( 
   list   IN  VARCHAR2,
   tablen OUT BINARY_INTEGER,
   tab    OUT lname_array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...