CRETAE TABLE提供的AS SELECT語句,允許從一個現有的表中創建一個新的表,創建的表可以包含原表的所有架構、字段屬性、約束和數據記錄;也可以僅架構完全相同,而不包含數據,其使用語法如下所示。
- CREATE TABLE <newtable> AS SELECT {* | column(s)} FROM <oldtable> [WHERE <condition>];
- CREATE TABLE emp_copy AS SELECT * from scott.emp
- CREATE TABLE emp_copy AS SELECT * from scott.emp WHERE 1=2;
- CREATE TABLE emp_copy_others AS SELECT empno,ename,TO_CHAR(hiredate,'yyyy-
- MM-dd') AS hiredate FROM scott.emp;
使用CREATE TABLE..SELECT AS方式有如下幾個限制需要注意。
不能夠複製約束條件與列的默認值,這需要手工重新建立。
不能夠爲新表指定表空間,默認情況下采用的是當前用戶的默認表空間。
一些大對象數據類型(比如Blob類型)或者是Long數據類型的數據,如果包含這種類型的查詢是不能創建成功的。