6

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

4

2 回答 2

10

但是结果集中那一列的列名是什么?

名为 的伪列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伪列,因为内存中的嵌套表没有。

于 2013-09-20T07:39:14.363 回答
3

它是column_value,以下应该工作:

SELECT rowid, p.column_value
FROM TABLE(strings) p;
于 2013-09-20T07:38:38.380 回答