场景,提供用户可读性。又不想创建视图,可考虑给表增加虚拟列。
给表增加虚拟列
试验一、给员工表增加年薪列。
alter table emp add(line_year_price as (to_char(sal*12,'$999,999,999.99')));
试验二,如何判断字段是否是虚拟列
SELECT a.VIRTUAL_COLUMN,a.* FROM user_TAB_COLS a where a.TABLE_NAME='EMP';
三、使用虚拟列的好处,和限制。
可以创建索引,收集统计数据。
create index i_year_price on emp(line_year_price);
虚拟列,必须声明函数(表达式的值)是确定的。即每次输入的值相同,得到的结果必须相同。