Oracle 11g 的新特性 —— 虚拟列

2014-11-24 19:01:31 · 作者: · 浏览: 29

介绍


在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图,如果我们需要在这个视图上使用索引,我们会创建基于函数的索引。


现在 Oracle 11g 允许我们直接在表上使用虚拟列来存储表达式。


来看一个简单的例子:


上述建的虚拟列 SAL_PACK 是由一个简单的表达式创建的,使用的关键字有 VIRTUAL(不过这个关键字是可选的),该字段的值是由 COMM 这个字段通过表达式计算而来的。


虚拟列的值是不存储在磁盘的,它们是在查询时根据定义的表达式临时计算的。


表达式是在查询的时候即时计算的,然后输出上述的结果。


虚拟列的索引和约束


我们也可以为虚拟列创建外键。


使用 PLSQL 函数来处理虚拟列


上述例子看来虚拟列的功能比视图本身要简单很多。


希望这对你也有用。