我在Oracle中有一个PL / SQL表类型/关联数组
CREATE OR REPLACE TYPE STRING_TBL IS TABLE OF VARCHAR2(3000);
我可以在其上执行像这样的选择查询
...
strings STRING_TBL;
...
SELECT * FROM TABLE(strings);
但是结果集中那一列的列名是什么?也就是说,我需要将<name_of_only_column>
放入什么才能使此查询起作用:
SELECT rowid, p.<name_of_only_column>
FROM TABLE(strings) p;
或者,如果我不能这样做,有没有办法通过Oracle中的子选择为一列别名?
答案 0 :(得分:7)
但结果集中该列的列名是什么?
名为column_value
的伪列。
-- nested table schema object type
create type t_list as table of number
select column_value
from table(T_List(1,2,3))
COLUMN_VALUE
------------
1
2
3
注意:在这种情况下,不允许使用rowid
伪列,只是因为内存中的嵌套表没有。{/ p>
答案 1 :(得分:1)
这是column_value
,以下内容应该有效:
SELECT rowid, p.column_value
FROM TABLE(strings) p;