【问题标题】:Column Name of PL/SQL Table-TypePL/SQL 表类型的列名
【发布时间】:2013-09-20 07:27:59
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

它是column_value,以下应该可以工作:

SELECT rowid, p.column_value
FROM TABLE(strings) p;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2011-10-02
    • 2013-01-05
    • 1970-01-01
    • 2012-11-22
    • 2021-05-09
    相关资源
    最近更新 更多