第3章 伪列:COLUMN_VALUE

原文地址:http://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns004.htm

如果引用不带COLUMNS子句的XMLTABLE构造函数,或者使用TABLE函数引用一个标量嵌套表类型,数据库返回一个具有单一列的虚表。这个伪列的名称就是COLUMN_VALUE。

对于XMLTABLE,返回值的类型为XMLType。例如,以下两个语句是等价的,输出都表明了返回的列名为COLUMN_VALUE:

SELECT * FROM XMLTABLE('123');

COLUMN_VALUE
---------------------------------------
123

SELECT COLUMN_VALUE FROM (XMLTable('123'));

COLUMN_VALUE
----------------------------------------
123

对于TABLE函数,返回值的类型为集合元素。以下语句创建了一个两层的嵌套表,展示了这种情况下COLUMN_VALUE的用法:

 
 

以下语句使用COLUMN_VALUE查询phone类型:

SELECT t.COLUMN_VALUE from table(phone(1,2,3)) t;

COLUMN_VALUE
------------
          1
          2
          3

在嵌套类型中,可以在选择列表以及TABLE函数中使用COLUMN_VALUE伪列:

SELECT t.COLUMN_VALUE FROM
   TABLE(phone_list(phone(1,2,3))) p, TABLE(p.COLUMN_VALUE) t;
COLUMN_VALUE
------------
           1
           2
           3

关键字COLUMN_VALUE也表示没有列名或者属性名的内部嵌套表的标量值的名称,如下例所示。此时,COLUMN_VALUE不是一个伪列,而是一个实际的列名。

CREATE TABLE my_customers (
   cust_id       NUMBER,
   name          VARCHAR2(25),
   phone_numbers phone_list,
   credit_limit  NUMBER)
   NESTED TABLE phone_numbers STORE AS outer_ntab
   (NESTED TABLE COLUMN_VALUE STORE AS inner_ntab);


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24945919/viewspace-747914/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24945919/viewspace-747914/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值