我对VARRAY in ORACLE有个问题
当我尝试在表中选择varray类型时,SQL Developer中的输出将显示
VARRAY_TYPE
__________________________________________________
USERNAME.VARRYA_TYPE('TYPE1','TYPE2','TYPE3')谁能给我指出摆脱"USERNAME.VARRAY_TYPE()“的方法,并提取结果
VARRAY_TYPE
__________________________________________________
'TYPE1','TYPE2','TYPE3'这里给出了我的varray和表示例,以供参考:
CREATE TYPE varray_TYPE AS VARRAY(3) OF CHAR(20)
/
CREATE TYPE table_TYPE AS OBJECT (
tableID number (6),
varray_var GENRE_TYPE
)
/
CREATE TABLE table1 as table_type(
tableID PRIMARY KEY
)
/
AND MY SELECT QUERY IS:
SELECT VARRAY_VAR AS VARRY_TYPE
FROM TABLE table1
/提前谢谢!
发布于 2014-10-16 01:36:38
使用cross join和table()对结果进行分解,然后用listagg重新聚合结果以添加自定义格式。
select
tableID,
listagg(trim(column_value), ',')
within group (order by column_value) varray_type
from table1
cross join table(table1.varray_var)
group by tableID
TABLEID VARRAY_TYPE
------- -----------
1 TYPE1,TYPE2,TYPE3我必须对您的语法做一些小的更改,才能使其正常工作:
CREATE TYPE varray_TYPE AS VARRAY(3) OF CHAR(20)
/
CREATE TYPE table_TYPE AS OBJECT (
tableID number (6),
varray_var varray_TYPE
)
/
CREATE TABLE table1 of table_type(
tableID PRIMARY KEY
)
/
insert into table1 values(1, varray_type('TYPE1','TYPE2','TYPE3'));
SELECT VARRAY_VAR AS VARRY_TYPE
FROM table1;https://stackoverflow.com/questions/26394354
复制相似问题