Oracle Multiset到String

时间:2013-03-07 18:11:43

标签: sql oracle plsql

我正在运行一个导致多个自定义Oracle类型的查询,我想在另一个查询中使用生成的multiset并将其与VARCHAR2字段连接。我想知道是否有办法将multiset转换为以逗号分隔的字符串?

我从查询中得到的是:

SCHEMA.TYPE_T(SCHEMA.TYPE('D0010422'),SCHEMA.TYPE('D0010599'),SCHEMA.TYPE('D0010600'))

我希望能够做的是将其作为另一个查询中的字符串包含在内:

D0010422, D0010599, D0010600

我的多集SQL:

SELECT CAST( MULTISET( query here) AS SCHEMA_type_t ) checks FROM DUAL;

1 个答案:

答案 0 :(得分:3)

create or replace type t_str as table of varchar2(100);

select 
   listagg(column_value, ',') within group (order by column_value) 
from 
   table(
      cast(
         multiset(
            select 'one' from dual
            union all
            select 'two' from dual
         ) as t_str
      )
   )

fiddle