使用预定义的系统函数将分隔的字符串(或列)转换为Oracle中的行

Pra*_*hah 3 sql oracle plsql

几年前在Oracle 10或9中我使用的函数类似于"DBMS_COL_2_VAL"(这绝对不是正确的函数).

此内置函数的目的是根据指定的分隔符将提供的字符串转换为行.我知道有多种方法可以将分隔的字符串转换为行,但我要找的是这个特定的函数.

如果你能提供帮助那就太好了.

请不要提供CONNECT,CASE或REGEX的任何解决方案.

谢谢

Pra*_*hah 7

我试图找到的功能是SYS.DBMS_DEBUG_VC2COLL.

从技术上讲,它不会将分隔的字符串转换为列,但会将逗号分隔值的列表转换为行.在我找到一个旧帖我才意识到.

示例代码和结果:

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

结果:

c1   
__  
a    
b    
c    
Run Code Online (Sandbox Code Playgroud)