Situatie
Duplicating a table via CTAS (Create Table As Select).
Using CTAS you can duplicate a table by keeping also only specific columns.
Solutie
Pasi de urmat
Syntax :
CREATE TABLE new_table_name AS
SELECT *
FROM table_name;
CREATE TABLE new_table_name AS
SELECT column_name1,
column_name2,
column_name3,
column_name5,
column_name9
FROM table_name;
Sample :
CREATE TABLE hr.employees_duplicate AS
SELECT *
FROM hr.employees;
CREATE TABLE hr.employees_duplicate_small AS
SELECT employee_id,
first_name,
last_name,
email,
salary
FROM hr.employees;
SELECT table_name,
Count(*) AS COLUMNS
FROM dba_tab_cols
WHERE table_name IN ( ‘EMPLOYEES’, ‘EMPLOYEES_DUPLICATE’,‘EMPLOYEES_DUPLICATE_SMALL’)
GROUP BY table_name;
SELECT Count(*)
FROM hr.employees;
SELECT Count(*)
FROM hr.employees_duplicate;
SELECT Count(*)
FROM hr.employees_duplicate_small;
Output :
(12.2.0.1) SQL> CREATE TABLE HR.EMPLOYEES_DUPLICATE AS SELECT * FROM HR.EMPLOYEES;
Table created.
(12.2.0.1) SQL> CREATE TABLE HR.EMPLOYEES_DUPLICATE_SMALL AS SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, SALARY FROM HR.EMPLOYEES;
Table created.
(12.2.0.1) SQL> SELECT TABLE_NAME, count(*) as columns FROM dba_tab_cols WHERE TABLE_NAME in ('EMPLOYEES','EMPLOYEES_DUPLICATE','EMPLOYEES_DUPLICATE_SMALL') GROUP BY TABLE_NAME;(12.2.0.1) SQL> (12.2.0.1) SQL>
TABLE_NAME COLUMNS
---------------------------------------- ----------
EMPLOYEES 11
EMPLOYEES_DUPLICATE 11
EMPLOYEES_DUPLICATE_SMALL 5
(12.2.0.1) SQL> SELECT count(*) FROM HR.EMPLOYEES;
COUNT(*)
----------
107
(12.2.0.1) SQL> SELECT count(*) FROM HR.EMPLOYEES_DUPLICATE;
COUNT(*)
----------
107
(12.2.0.1) SQL> SELECT count(*) FROM HR.EMPLOYEES_DUPLICATE_SMALL;
COUNT(*)
----------
107
(12.2.0.1) SQL>
Leave A Comment?