介绍
在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图,如果我们需要在这个视图上使用索引,我们会创建基于函数的索引。
现在 Oracle 11g 允许我们直接在表上使用虚拟列来存储表达式。
来看一个简单的例子:
上述建的虚拟列 SAL_PACK 是由一个简单的表达式创建的,使用的关键字有 VIRTUAL(不过这个关键字是可选的),该字段的值是由 COMM 这个字段通过表达式计算而来的。
虚拟列的值是不存储在磁盘的,它们是在查询时根据定义的表达式临时计算的。
表达式是在查询的时候即时计算的,然后输出上述的结果。
虚拟列的索引和约束
我们也可以为虚拟列创建外键。
使用 PLSQL 函数来处理虚拟列
上述例子看来虚拟列的功能比视图本身要简单很多。
希望这对你也有用。