我有一个现有的分区表,我们称它为A,我想使用以下命令创建第二个表B:
Create table B as select * from A where 1=2;A是一个分区表,我也希望B是一个分区表,但上面的命令创建了一个普通表。
有没有一种方法可以克隆分区表?
发布于 2017-03-12 12:52:27
您将需要为表B指定分区子句。您可以使用dbms_metadata()获取DDL。
set long 100000
select dbms_metadata.get_ddl( 'TABLE','EMP2' ) from dual
DBMS_METADATA.GET_DDL('TABLE','EMP2')
--------------------------------------------------------------------------------
CREATE TABLE "SCOTT"."EMP2"
( "EMPNO" NUMBER(4,0) NOT NULL ENABLE,
"ENAME" VARCHAR2(10),
"JOB" VARCHAR2(9),
"MGR" NUMBER(4,0),
"HIREDATE" DATE,
"SAL" NUMBER(7,2),
"COMM" NUMBER(7,2),
"DEPTNO" NUMBER(2,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM"
PARTITION BY RANGE ("EMPNO")
(PARTITION "P1" VALUES LESS THAN (7500) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ,
PARTITION "P2" VALUES LESS THAN (7600) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" )然后只需在CREATE table语句中更改表名
使用分区从一个表创建另一个表的语法...
create table junk
partition by hash(empno) partitions 2
as
select * from emp
where 1=2https://stackoverflow.com/questions/42743889
复制相似问题