首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从现有分区表创建分区表

从现有分区表创建分区表
EN

Stack Overflow用户
提问于 2017-03-12 12:48:29
回答 1查看 3.3K关注 0票数 0

我有一个现有的分区表,我们称它为A,我想使用以下命令创建第二个表B:

代码语言:javascript
复制
Create table B as select * from A where 1=2;

A是一个分区表,我也希望B是一个分区表,但上面的命令创建了一个普通表。

有没有一种方法可以克隆分区表?

EN

回答 1

Stack Overflow用户

发布于 2017-03-12 12:52:27

您将需要为表B指定分区子句。您可以使用dbms_metadata()获取DDL。

代码语言:javascript
复制
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语句中更改表名

使用分区从一个表创建另一个表的语法...

代码语言:javascript
复制
 create table junk
 partition by hash(empno) partitions 2
 as
 select * from emp
 where 1=2
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42743889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档