【VIRTUAL COLUMN】Oracle 11g中的虛擬列技術
Oracle在11g中推出了虛擬列的技術,虛擬列的資料並沒有被被儲存在資料檔案中,而是在使用的過程中計算得到的。
簡單看一下這個技術。
1.建立測試表T,並初始化一條資料
sec@11gR2> create table t (x varchar2(8));
Table created.
sec@11gR2> insert into t values ('secooler');
1 row created.
sec@11gR2> select * from t;
X
--------
secooler
2.在T表中新增一個虛擬列virtual_column_x,用來得到x列的大寫形式
sec@11gR2> alter table t add (virtual_column_x as (upper(x)));
Table altered.
sec@11gR2> desc t;
Name Null? Type
----------------------- -------- -----------------
X VARCHAR2(8)
VIRTUAL_COLUMN_X VARCHAR2(8)
3.此時查詢表T內容
sec@11gR2> col VIRTUAL_COLUMN_X for a20
sec@11gR2> select * from t;
X VIRTUAL_COLUMN_X
-------- --------------------
secooler SECOOLER
4.注意具有虛擬列表的插入方式
sec@11gR2> insert into t values ('hou','HOU');
insert into t values ('hou','HOU')
*
ERROR at line 1:
ORA-54013: INSERT operation disallowed on virtual columns
如果不指定列名的話就會收到這個ORA-54013錯誤:虛擬列不允許INSERT操作。
我們需要透過指定列名的方式來完成資料的插入。
sec@11gR2> insert into t (x) values ('hou');
1 row created.
sec@11gR2> select * from t;
X VIRTUAL_COLUMN_X
-------- --------------------
secooler SECOOLER
hou HOU
5.小結
11g推出的虛擬列技術,可以說是以CPU換DISK空間的技術,Oracle之後在真正使用到虛擬列的時候才去計算它,因此可以有效地節省磁碟空間。
關於虛擬列的技術點還有很多,探索ing
Good luck.
secooler
10.05.10
-- The End --
簡單看一下這個技術。
1.建立測試表T,並初始化一條資料
sec@11gR2> create table t (x varchar2(8));
Table created.
sec@11gR2> insert into t values ('secooler');
1 row created.
sec@11gR2> select * from t;
X
--------
secooler
2.在T表中新增一個虛擬列virtual_column_x,用來得到x列的大寫形式
sec@11gR2> alter table t add (virtual_column_x as (upper(x)));
Table altered.
sec@11gR2> desc t;
Name Null? Type
----------------------- -------- -----------------
X VARCHAR2(8)
VIRTUAL_COLUMN_X VARCHAR2(8)
3.此時查詢表T內容
sec@11gR2> col VIRTUAL_COLUMN_X for a20
sec@11gR2> select * from t;
X VIRTUAL_COLUMN_X
-------- --------------------
secooler SECOOLER
4.注意具有虛擬列表的插入方式
sec@11gR2> insert into t values ('hou','HOU');
insert into t values ('hou','HOU')
*
ERROR at line 1:
ORA-54013: INSERT operation disallowed on virtual columns
如果不指定列名的話就會收到這個ORA-54013錯誤:虛擬列不允許INSERT操作。
我們需要透過指定列名的方式來完成資料的插入。
sec@11gR2> insert into t (x) values ('hou');
1 row created.
sec@11gR2> select * from t;
X VIRTUAL_COLUMN_X
-------- --------------------
secooler SECOOLER
hou HOU
5.小結
11g推出的虛擬列技術,可以說是以CPU換DISK空間的技術,Oracle之後在真正使用到虛擬列的時候才去計算它,因此可以有效地節省磁碟空間。
關於虛擬列的技術點還有很多,探索ing
Good luck.
secooler
10.05.10
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-662376/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle11G 虛擬列 Virtual Column使用Oracle
- oracle 11g 虛擬列Oracle
- Oracle中的虛擬列索引-nosegment indexOracle索引Index
- C++中的虛擬函式(virtual function)C++函式Function
- 介紹Oracle Virtual Index虛擬索引(上)OracleIndex索引
- 虛擬化中的連結克隆技術
- openNebula 運維繫列虛擬機器virtual machines operations運維虛擬機Mac
- 虛擬化技術(-)
- 虛擬化技術
- Oracle 11g的多列統計(Multi Column)值(上)Oracle
- Oracle 11g的多列統計(Multi Column)值(下)Oracle
- 虛擬化四、KVM虛擬化技術
- Docker技術( 容器虛擬化技術 )Docker
- Oracle 11G Virtual ColumnsOracle
- 虛擬現實技術
- KVM 虛擬化技術
- 虛擬技術與雲
- 虛擬主播技術在智慧問答中的應用
- 虛擬存貯技術在資訊管理中的意義
- 虛擬私有云(Virtual Private Cloud,VPC)Cloud
- [CareerCup] 13.3 Virtual Functions 虛擬函式Function函式
- Virtual Box 虛擬機器擴容虛擬機
- 什麼是虛擬化技術,為什麼要虛擬化技術?薦
- 容器技術和虛擬機器技術的對比虛擬機
- 虛擬化技術概述(一)
- 初識虛擬化技術
- 11g新特性--基於虛擬列的分割槽
- 虛擬蜜罐:從資訊模擬到實現虛擬蜜罐技術
- Oracle11新特性——虛擬列Oracle
- 在Linux中,什麼是虛擬化?並且列出常見的虛擬化技術。Linux
- Oracle 11g RMAN虛擬私有目錄Oracle
- Linux叢集技術的熱點-虛擬技術(轉)Linux
- oracle 11G RAC的建立(VM虛擬環境)Oracle
- 技術界中的虛擬機器、容器和沙箱的關係虛擬機
- Linux虛擬網路技術Linux
- 網路虛擬化技術棧
- 虛擬技術助力春運高峰
- 淺談GPU虛擬化技術(四)-GPU分片虛擬化GPU