#sql #oracle #plsql
#sql #Oracle #plsql
Вопрос:
Несколько лет назад в Oracle 10 или 9 я использовал функцию, которая была чем-то вроде «DBMS_COL_2_VAL» (это определенно неправильная функция).
Целью этой встроенной функции является преобразование предоставленной строки в строки на основе указанного разделителя. Я знаю, что существует несколько способов преобразования строки с разделителями в строки, но то, что я ищу, — это эта конкретная функция.
Если вы можете помочь, это было бы здорово.
Пожалуйста, не предоставляйте никаких решений с помощью CONNECT, CASE или REGEX.
Спасибо
Комментарии:
1. Интересный вопрос. В Sybase была отличная функция aggregate LIST (<строка>), которая вроде бы делала противоположное тому, что вы просите. Для этого потребуется столбец и объединить строки в список, разделенный запятыми.
Ответ №1:
Функция, которую я пытался найти, была 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:
Может быть, вы думаете об этом?
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);