在线重定义方式建分区表

  1. 将 SBDA_PSMDPYDT 按 YEARNO 进行范围分区
    EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE(user, 'SBDA_PSMDPYDT', DBMS_REDEFINITION.CONS_USE_PK);
    -- Create table
    create table SBDA_PSMDPYDT2
    (
      MDSENO          NUMBER(12) not null,
      PSSENO          NUMBER(12) not null,
      CPSENO          NUMBER(12),
      YBLB            CHAR(2) not null,
      YBZLB           CHAR(4) not null,
      AGE             NUMBER(3),
      MDIDENTITY      CHAR(2),
      ARFLAG          CHAR(1) not null,
      YEARNO          NUMBER(4) not null,
      SUMFD           NUMBER(10,2) not null,
      MDFD            NUMBER(10,2) not null,
      ELIMFD          NUMBER(10,2),
      PSBDFD          NUMBER(10,2),
      PSILBDFD        NUMBER(10,2),
      PSBPFD          NUMBER(10,2),
      BERATE          NUMBER(4,3),
      BEFD            NUMBER(10,2),
      PSCYACFD        NUMBER(8,2),
      PSLYACFD        NUMBER(10,2),
      OFHPFD          NUMBER(10,2),
      QTHPFD          NUMBER(10,2),
      HPMDFD          NUMBER(10,2),
      SIMDFD          NUMBER(10,2),
      SIHPFD          NUMBER(10,2),
      OFPSFD          NUMBER(10,2),
      MDPSPYFD        NUMBER(10,2),
      MDPSPYFD_GWYQFX NUMBER(10,2),
      PSPYFD          NUMBER(10,2),
      CUFLAG          CHAR(1) not null,
      DIFLAG          CHAR(1),
      HICODE          NUMBER(4),
      HINAME          VARCHAR2(60),
      MDCODE          VARCHAR2(20),
      INDATE          DATE,
      OUTDATE         DATE,
      HIDAY           NUMBER(4),
      HIDEPART        VARCHAR2(20),
      DCNAME          VARCHAR2(10),
      YBILLCODE       VARCHAR2(10),
      GDBZILLCODE     VARCHAR2(10),
      TJTZMC          VARCHAR2(100),
      ILLDESP         VARCHAR2(200),
      VCCONT          NUMBER(4),
      CYHICONT        NUMBER(4),
      CYOFPSFD        NUMBER(10,2),
      CYHIPSFD        NUMBER(10,2),
      CCBEFD          NUMBER(12,2),
      CYACLFFD        NUMBER(8,2),
      LYACLFFD        NUMBER(10,2),
      CYSPMDFD        NUMBER(10,2),
      SPMDFD          NUMBER(10,2),
      INOPDATE        DATE,
      OUTOPDATE       DATE,
      PYSENO          NUMBER(12),
      FTDATE          DATE,
      MDOPFLAG        CHAR(1) not null,
      OPCODE          CHAR(4),
      OPDATE          DATE not null,
      OPYM            NUMBER(6) not null,
      AUCODE          CHAR(4),
      AUDATE          DATE,
      AUYM            NUMBER(6),
      CWCODE          CHAR(4),
      CWDATE          DATE,
      CWYM            NUMBER(6),
      TKCODE          VARCHAR2(10),
      TKDATE          DATE,
      REGSENO         NUMBER(12),
      CDFLAG          CHAR(1) not null,
      NETFLAG         CHAR(1),
      PSSTATUS        CHAR(1),
      BXTYPE          CHAR(1),
      PDCODE          CHAR(2),
      PRSENO          NUMBER(12) not null,
      ZFDJ            NUMBER(12),
      BXYY            CHAR(1),
      ELIMTCFS        CHAR(2),
      ELIMFDSG        NUMBER(10,2),
      TCYYNOTE        VARCHAR2(50),
      PSPYQFX         NUMBER(10,2),
      SIMDYBX         NUMBER(10,2),
      OTHFDQFX        NUMBER(10,2),
      LNZFFY          NUMBER(10,2),
      QTSIMFD         NUMBER(10,2),
      TKPYSENO        NUMBER(12),
      CUFLAGMX        CHAR(3),
      LZZHZFFYA       NUMBER(10,2),
      LZZHZFFYB1      NUMBER(10,2),
      LZZHZFFYB2      NUMBER(10,2),
      LZZHZFFYC       NUMBER(10,2),
      LZZHZFFYD       NUMBER(10,2),
      PSPYFDA         NUMBER(10,2),
      PSPYFDB         NUMBER(10,2),
      PSPYFDC         NUMBER(10,2),
      PSPYFDD         NUMBER(10,2),
      GHLX            CHAR(3),
      DQDM            VARCHAR2(6),
      QSBZ            CHAR(1) default '0',
      JYH             NUMBER(20),
      GRNM            VARCHAR2(18)
    )
    PARTITION BY range(YEARNO)
          (PARTITION y2009 VALUES LESS THAN (2010) tablespace user_data01,
           PARTITION y2010 VALUES LESS THAN (2011) tablespace user_data02,
           PARTITION y2011 VALUES LESS THAN (2012) tablespace user_data03,
           PARTITION y2012 VALUES LESS THAN (2013) tablespace user_data04,
           PARTITION y2013 VALUES LESS THAN (2014) tablespace user_data05,
           PARTITION y2014 VALUES LESS THAN (2015) tablespace user_data06,
           PARTITION y2015 VALUES LESS THAN (2016) tablespace user_data01,
           PARTITION y2016 VALUES LESS THAN (2017) tablespace user_data02,
           PARTITION y2017 VALUES LESS THAN (2018) tablespace user_data03,
           PARTITION y2018 VALUES LESS THAN (2019) tablespace user_data04,
           PARTITION y2019 VALUES LESS THAN (2020) tablespace user_data05,
           PARTITION y2020 VALUES LESS THAN (9999) tablespace user_data06);

    EXEC DBMS_REDEFINITION.START_REDEF_TABLE(USER, 'SBDA_PSMDPYDT', 'SBDA_PSMDPYDT2');   
    --如后面出错
    --DBMS_REDEFINITION.abort_redef_table(user, 'SBDA_PSMDPYDT', 'SBDA_PSMDPYDT2')
    execute dbms_redefinition.sync_interim_table(user,'SBDA_PSMDPYDT','SBDA_PSMDPYDT2');
    EXEC DBMS_REDEFINITION.FINISH_REDEF_TABLE(user, 'SBDA_PSMDPYDT', 'SBDA_PSMDPYDT2');

    -- Add comments to the table
    comment on table SBDA_PSMDPYDT
      is '医疗应付费用';
    -- Add comments to the columns
    comment on column SBDA_PSMDPYDT.MDSENO
      is '医疗单号';
    comment on column SBDA_PSMDPYDT.PSSENO
      is '人员内码';
    comment on column SBDA_PSMDPYDT.CPSENO
      is '单位编号';
    comment on column SBDA_PSMDPYDT.YBLB
      is '医保类别';
    comment on column SBDA_PSMDPYDT.YBZLB
      is '医保子类别';
    comment on column SBDA_PSMDPYDT.AGE
      is '年龄:::如2003年3月1日出生,到2004年算0岁2005算1岁';
    comment on column SBDA_PSMDPYDT.MDIDENTITY
      is '医疗职务级别::参见公共代码表';
    comment on column SBDA_PSMDPYDT.ARFLAG
      is '地域类型::0 本地在本地 1 本地在外地 2 外地安置在非选定医院 3 外地安置在选定医院 9 就近就医';
    comment on column SBDA_PSMDPYDT.YEARNO
      is '医保年度';
    comment on column SBDA_PSMDPYDT.SUMFD
      is '总费用=医保费用 + 个人应自理费用 + 个人应自费费用';
    comment on column SBDA_PSMDPYDT.MDFD
      is '医保费用::';
    comment on column SBDA_PSMDPYDT.ELIMFD
      is '剔除费用::医院认定为医保范围,但被社保剔除用药';
    comment on column SBDA_PSMDPYDT.PSBDFD
      is '个人应自费费用';
    comment on column SBDA_PSMDPYDT.PSILBDFD
      is '尿毒症病人血透费自理费用';
    comment on column SBDA_PSMDPYDT.PSBPFD
      is '个人应自理费用';
    comment on column SBDA_PSMDPYDT.BERATE
      is '先付比例';
    comment on column SBDA_PSMDPYDT.BEFD
      is '先付费用::先付费用 = 医保费用 × 先付比例';
    comment on column SBDA_PSMDPYDT.PSCYACFD
      is '当年账户支付额 新农合表示两病医院支付';
    comment on column SBDA_PSMDPYDT.PSLYACFD
      is '历年帐户支付额 新农合表示两病限额以下补偿金额';
    comment on column SBDA_PSMDPYDT.OFHPFD
      is '公务员补助支付额';
    comment on column SBDA_PSMDPYDT.QTHPFD
      is '其他补助支付额';
    comment on column SBDA_PSMDPYDT.HPMDFD
      is '社会救助支付额';
    comment on column SBDA_PSMDPYDT.SIMDFD
      is '统筹支付额';
    comment on column SBDA_PSMDPYDT.SIHPFD
      is '大病救助支付额';
    comment on column SBDA_PSMDPYDT.OFPSFD
      is '公务员个人负担费用::用于嵊泗,待定';
    comment on column SBDA_PSMDPYDT.MDPSPYFD
      is '个人应承担费用';
    comment on column SBDA_PSMDPYDT.MDPSPYFD_GWYQFX
      is '起付线以上公务员自负费用';
    comment on column SBDA_PSMDPYDT.PSPYFD
      is '现金支付';
    comment on column SBDA_PSMDPYDT.CUFLAG
      is '费用类别::[0 门诊 1 住院 2 药店 3 特殊病种门诊]';
    comment on column SBDA_PSMDPYDT.DIFLAG
      is '困难户标志:: 0 普通 1 困难户';
    comment on column SBDA_PSMDPYDT.HICODE
      is '医院代码';
    comment on column SBDA_PSMDPYDT.HINAME
      is '医院名称';
    comment on column SBDA_PSMDPYDT.MDCODE
      is '住院号';
    comment on column SBDA_PSMDPYDT.INDATE
      is '入院时间';
    comment on column SBDA_PSMDPYDT.OUTDATE
      is '出院时间';
    comment on column SBDA_PSMDPYDT.HIDAY
      is '住院天数';
    comment on column SBDA_PSMDPYDT.HIDEPART
      is '住院科室';
    comment on column SBDA_PSMDPYDT.DCNAME
      is '就诊医生::填写主治医生名称';
    comment on column SBDA_PSMDPYDT.YBILLCODE
      is '疾病名称代码';
    comment on column SBDA_PSMDPYDT.GDBZILLCODE
      is '特殊疾病名称代码::规定病种gdbzillcode 特检特治tjtzillcode';
    comment on column SBDA_PSMDPYDT.TJTZMC
      is '特检特治名称';
    comment on column SBDA_PSMDPYDT.ILLDESP
      is '病情';
    comment on column SBDA_PSMDPYDT.VCCONT
      is '单据数';
    comment on column SBDA_PSMDPYDT.CYHICONT
      is '本年已住院次数::冗余保留数据备查';
    comment on column SBDA_PSMDPYDT.CYOFPSFD
      is '本年公补自负累计支付额::';
    comment on column SBDA_PSMDPYDT.CYHIPSFD
      is '本年住院累计支付额::暂不使用,无效数据';
    comment on column SBDA_PSMDPYDT.CCBEFD
      is '本次起付线::';
    comment on column SBDA_PSMDPYDT.CYACLFFD
      is '当年帐户余额::保留报销后数据';
    comment on column SBDA_PSMDPYDT.LYACLFFD
      is '历年帐户余额::保留报销后数据';
    comment on column SBDA_PSMDPYDT.CYSPMDFD
      is '本年离休预发剩余金额::保留报销后数据';
    comment on column SBDA_PSMDPYDT.SPMDFD
      is '离休预发记帐金额::使用数';
    comment on column SBDA_PSMDPYDT.INOPDATE
      is '入院操作时间::医院交易时指医院入院操作时间或门诊时间,直接报销时指中心操作时间';
    comment on column SBDA_PSMDPYDT.OUTOPDATE
      is '出院操作时间::医院交易时指医院出院操作时间,直接报销时指中心操作时间';
    comment on column SBDA_PSMDPYDT.PYSENO
      is '支付单号::当支付类别为0医院支付时,和医院药店拨付表中的支付单号相关联';
    comment on column SBDA_PSMDPYDT.FTDATE
      is '支付时间';
    comment on column SBDA_PSMDPYDT.MDOPFLAG
      is '医保支付操作标志::0 未审核(医院联网报销) 1 审核(医院联网报销明细审核) 2 结算(中心报销或医院月底结算) 3 支付(中心财务确认或医院月底拨付标志)';
    comment on column SBDA_PSMDPYDT.OPCODE
      is '操作员::';
    comment on column SBDA_PSMDPYDT.OPDATE
      is '操作时间::医院交易、直接报销均指中心操作时间,即中心交易时间';
    comment on column SBDA_PSMDPYDT.OPYM
      is '操作所属期';
    comment on column SBDA_PSMDPYDT.AUCODE
      is '审核员';
    comment on column SBDA_PSMDPYDT.AUDATE
      is '审核时间';
    comment on column SBDA_PSMDPYDT.AUYM
      is '审核业务所属期';
    comment on column SBDA_PSMDPYDT.CWCODE
      is '财务操作员';
    comment on column SBDA_PSMDPYDT.CWDATE
      is '财务操作时间';
    comment on column SBDA_PSMDPYDT.CWYM
      is '财务业务所属期';
    comment on column SBDA_PSMDPYDT.TKCODE
      is '退款操作员::联网时医院传入';
    comment on column SBDA_PSMDPYDT.TKDATE
      is '退款时间::系统时间';
    comment on column SBDA_PSMDPYDT.REGSENO
      is '登记单号';
    comment on column SBDA_PSMDPYDT.CDFLAG
      is '医疗有效标志::[0 有效(个人帐户、一般情况下报销以及中心登记等) 1 退款(个人帐户、暂不使用) 2 作废 3 临时(联网暂存等)缺省取有效,退款时置为退款,改帐时置为作废';
    comment on column SBDA_PSMDPYDT.NETFLAG
      is '联网标志::0 非实时报销(未联网) 1 实时报销(联网)';
    comment on column SBDA_PSMDPYDT.PSSTATUS
      is '人员状态';
    comment on column SBDA_PSMDPYDT.BXTYPE
      is '报销类别::0 特殊报销 1 普通报销 2 直接报销 3 转院补差 4 特殊病补差 5 住院费用补差 6 一次性支付 7 一次性冲帐';
    comment on column SBDA_PSMDPYDT.PDCODE
      is '险种编码::02 医保(缺省) 22 新农医';
    comment on column SBDA_PSMDPYDT.ZFDJ
      is '支付单据';
    comment on column SBDA_PSMDPYDT.BXYY
      is '报销原因';
    comment on column SBDA_PSMDPYDT.ELIMTCFS
      is '手工剔除方式:01 明细剔除 02 不予支付';
    comment on column SBDA_PSMDPYDT.ELIMFDSG
      is '手工剔除费用';
    comment on column SBDA_PSMDPYDT.TCYYNOTE
      is '剔除原因';
    comment on column SBDA_PSMDPYDT.PSPYQFX
      is '门诊自负费用';
    comment on column SBDA_PSMDPYDT.SIMDYBX
      is '门诊自负费用以上统筹报销金额';
    comment on column SBDA_PSMDPYDT.OTHFDQFX
      is '军转干部历年个帐用完后的报销费用';
    comment on column SBDA_PSMDPYDT.LNZFFY
      is '历年帐户自付自理费用部分';
    comment on column SBDA_PSMDPYDT.QTSIMFD
      is '用于二次补偿统筹支付';
    comment on column SBDA_PSMDPYDT.TKPYSENO
      is '退款费用支付号(中心结算时更新)';
    comment on column SBDA_PSMDPYDT.CUFLAGMX
      is '收费小类';
    comment on column SBDA_PSMDPYDT.LZZHZFFYA
      is '历年帐户支付个人自费';
    comment on column SBDA_PSMDPYDT.LZZHZFFYB1
      is '历年帐户支付个人自理(不包括先付)';
    comment on column SBDA_PSMDPYDT.LZZHZFFYB2
      is '历年帐户支付先付费用';
    comment on column SBDA_PSMDPYDT.LZZHZFFYC
      is '历年帐户支付个人自负';
    comment on column SBDA_PSMDPYDT.LZZHZFFYD
      is '历年帐户支付个人承担';
    comment on column SBDA_PSMDPYDT.PSPYFDA
      is '实际个人自费';
    comment on column SBDA_PSMDPYDT.PSPYFDB
      is '实际个人自理';
    comment on column SBDA_PSMDPYDT.PSPYFDC
      is '实际个人自负';
    comment on column SBDA_PSMDPYDT.PSPYFDD
      is '实际个人承担';
    comment on column SBDA_PSMDPYDT.GHLX
      is '挂号类型';
    comment on column SBDA_PSMDPYDT.DQDM
      is '地区代码';
    comment on column SBDA_PSMDPYDT.QSBZ
      is '清算标志';
    comment on column SBDA_PSMDPYDT.GRNM
      is '原医保系统个人唯一码';
    -- Create/Recreate indexes
    create index IDX_SBDA_PSMDPYDT_MDSENO on SBDA_PSMDPYDT (MDSENO) local;
  2. 将 SBDA_MDDETL 按MDSENO 进行HASH分区
    EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE(user, 'SBDA_MDDETL', DBMS_REDEFINITION.CONS_USE_PK);

    -- Create table
    create table SBDA_MDDETL2
    (
      MDSENO   NUMBER(12) not null,
      MXNO     NUMBER(12) not null,
      MECODE   VARCHAR2(13) not null,
      MENAME   VARCHAR2(100),
      HIMECODE VARCHAR2(20),
      HIMENAME VARCHAR2(80),
      CUTYPE   CHAR(2),
      METYPE   CHAR(1),
      CURATE   CHAR(1),
      MESHAPE  VARCHAR2(40),
      PACKAGE  VARCHAR2(40),
      ADDR     VARCHAR2(60),
      UNIT     VARCHAR2(60),
      USAGE    VARCHAR2(60),
      PRICE    NUMBER(10,4),
      AMOUNT   NUMBER(8,2),
      PSRATE   NUMBER(4,3),
      SUMFD    NUMBER(8,2) not null,
      ELIMFD   NUMBER(10,4),
      TCYY     CHAR(2),
      PSBPFD   NUMBER(10,4),
      PSBDFD   NUMBER(10,4),
      MDFD     NUMBER(10,4) not null,
      CFDATE   NUMBER(8),
      CDFLAG   CHAR(1),
      PRSENO   NUMBER(12) not null,
      ETHFLAG  VARCHAR2(3),
      OPDATE   DATE,
      TCFS     CHAR(1),
      AMNOTE   VARCHAR2(20),
      USECT    VARCHAR2(60),
      USFREQ   VARCHAR2(60),
      LNZHSYBZ NUMBER(6),
      FFBH     VARCHAR2(10),
      JYH      NUMBER(20)
    )
    PARTITION BY hash(mdseno)
    (
      PARTITION P01 TABLESPACE user_data01,
      PARTITION P02 TABLESPACE user_data02,
      PARTITION P03 TABLESPACE user_data03,
      PARTITION P04 TABLESPACE user_data04,
      PARTITION P05 TABLESPACE user_data05,
      PARTITION P06 TABLESPACE user_data06,  
      PARTITION P07 TABLESPACE user_data01,
      PARTITION P08 TABLESPACE user_data02,
      PARTITION P09 TABLESPACE user_data03,
      PARTITION P10 TABLESPACE user_data04,
      PARTITION P11 TABLESPACE user_data05,
      PARTITION P12 TABLESPACE user_data06,  
      PARTITION P13 TABLESPACE user_data01,
      PARTITION P14 TABLESPACE user_data02,
      PARTITION P15 TABLESPACE user_data03,
      PARTITION P16 TABLESPACE user_data04,
      PARTITION P17 TABLESPACE user_data05,
      PARTITION P18 TABLESPACE user_data06  
    );

    EXEC DBMS_REDEFINITION.START_REDEF_TABLE(USER, 'SBDA_MDDETL', 'SBDA_MDDETL2');   
    --如后面出错
    --DBMS_REDEFINITION.abort_redef_table(user, 'SBDA_MDDETL', 'SBDA_MDDETL2')
    execute dbms_redefinition.sync_interim_table(user,'SBDA_MDDETL','SBDA_MDDETL2');
    EXEC DBMS_REDEFINITION.FINISH_REDEF_TABLE(user, 'SBDA_MDDETL', 'SBDA_MDDETL2');

    -- Grant/Revoke object privileges
    grant select on SBDA_MDDETL to SELECTROL;
    grant select, insert, update, delete, alter on SBDA_MDDETL to SIISROL;
    -- Add comments to the table
    comment on table SBDA_MDDETL
      is '医疗费用明细清单::医院上传数据';
    -- Add comments to the columns
    comment on column SBDA_MDDETL.MDSENO
      is '医疗单号::和医疗应付费用表中的医疗单号相关联';
    comment on column SBDA_MDDETL.MXNO
      is '明细记录号';
    comment on column SBDA_MDDETL.MECODE
      is '药品诊疗代码::无代码时传 0';
    comment on column SBDA_MDDETL.MENAME
      is '药品诊疗名称';
    comment on column SBDA_MDDETL.HIMECODE
      is '医院药品诊疗代码';
    comment on column SBDA_MDDETL.HIMENAME
      is '医院药品诊疗名称';
    comment on column SBDA_MDDETL.CUTYPE
      is '收费类别';
    comment on column SBDA_MDDETL.METYPE
      is '药品类别::0 正常 1 甲类 2 乙类 3 自费 9 诊疗';
    comment on column SBDA_MDDETL.CURATE
      is '诊疗等级::[0 普通 1 特检 2 特治]';
    comment on column SBDA_MDDETL.MESHAPE
      is '剂型::对于中草药为单味或复方';
    comment on column SBDA_MDDETL.PACKAGE
      is '规格';
    comment on column SBDA_MDDETL.ADDR
      is '产地';
    comment on column SBDA_MDDETL.UNIT
      is '单位';
    comment on column SBDA_MDDETL.USAGE
      is '用法::药品用法';
    comment on column SBDA_MDDETL.PRICE
      is '单价';
    comment on column SBDA_MDDETL.AMOUNT
      is '数量';
    comment on column SBDA_MDDETL.PSRATE
      is '自负比例';
    comment on column SBDA_MDDETL.SUMFD
      is '总费用';
    comment on column SBDA_MDDETL.ELIMFD
      is '剔除费用';
    comment on column SBDA_MDDETL.TCYY
      is '剔除原因';
    comment on column SBDA_MDDETL.PSBPFD
      is '自理费用';
    comment on column SBDA_MDDETL.PSBDFD
      is '自费费用';
    comment on column SBDA_MDDETL.MDFD
      is '医保费用';
    comment on column SBDA_MDDETL.CFDATE
      is '处方日期';
    comment on column SBDA_MDDETL.CDFLAG
      is '有效标志::0有效 1无效';
    comment on column SBDA_MDDETL.ETHFLAG
      is '处方药标志:0非处方药 1处方药';
    comment on column SBDA_MDDETL.OPDATE
      is '操作时间';
    comment on column SBDA_MDDETL.TCFS
      is '剔除方式';
    comment on column SBDA_MDDETL.AMNOTE
      is '剔除计算备注::剔除数量/比例';
    comment on column SBDA_MDDETL.USECT
      is '用量';
    comment on column SBDA_MDDETL.USFREQ
      is '频次';
    comment on column SBDA_MDDETL.LNZHSYBZ
      is '历年个帐使用标记';
    comment on column SBDA_MDDETL.FFBH
      is '复方编号';
    -- Create/Recreate indexes
    --需要先删除 SBDA_MDDETL2 中的索引,或者改名,否则后面重复
    create index IDX_SBDA_MDDETL_MDMX on SBDA_MDDETL (MDSENO, MXNO) local;

 

你可能感兴趣的:(分区表)