PL / SQL表类型的列名

时间:2013-09-20 07:28:00

标签: sql oracle data-structures plsql relational-database

我在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中的子选择为一列别名?

2 个答案:

答案 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;