oracle创建分区表

这里的第一种方式创建分区表是最近更改程序时学会的,哈哈

-- 通过create table tablename as select * from tablename (指定分区)

 create table scott.tp_comp_user_day_20100601
       partition by list (area_cd)
      (
        partition P0451 values (0451) tablespace TBs_DATA,
        partition P0452 values (0452) tablespace TBS_DATA,
        partition P0453 values (0453) tablespace TBS_DATA,
        partition P0454 values (0454) tablespace TBS_DATA,
        partition P0455 values (0455) tablespace TBS_DATA,
        partition P0456 values (0456) tablespace TBS_DATA,
        partition P0457 values (0457) tablespace TBS_DATA,
        partition P0458 values (0458) tablespace TBS_DATA,
        partition P0459 values (0459) tablespace TBS_DATA,
        partition P0464 values (0464) tablespace TBS_DATA,
        partition P0467 values (0467) tablespace TBS_DATA,
        partition P0468 values (0468) tablespace TBS_DATA,
        partition P0469 values (0469) tablespace TBS_DATA,
        partition P0000 values (-1)tablespace TBS_DATA
        )
as  select
      accs_nbr,
      201006,
      bill_month,
      comp_id,
      area_cd,
      prov_id,
      long_type,
      brand_cd,
      std_comp_prd_type_cd,
      last_call_date,
      this_call_date,
      latest_in_date,
      latest_out_date,
      is_arrive,
      is_new
   from scott.tp_comp_user_p_day_cur  t
  where t.stat_date = 20100601
;
commit;

-- 正常方式

-- create table
create table tp_serv_day
(
  date_cd                varchar2(8),
  serv_id                number(12),
  acc_nbr                varchar2(30),
  physical_number        varchar2(32),
  sim_id                 varchar2(20),
  cdma_nbr_head_type     varchar2(5),
  os_sts                 varchar2(50),
  cde_serv_state_cd      varchar2(15),
  std_serv_state_cd      number(15),
  state_date             date,
  state_month            number(9),
  cde_corp_user_cd       varchar2(14),
  std_corp_user_cd       number(15),
  cde_user_type_cd       varchar2(15),
  std_user_type_cd       number(15),
  cde_prd_id             varchar2(20),
  std_prd_id             number(15),
  cde_ofr_id             varchar2(20),
  std_ofr_id             number(15),
  cde_urban_flag_cd      varchar2(10),
  std_urban_flag_cd      number(15),
  cde_pay_meth_cd        varchar2(18),
  std_pay_meth_cd        number(15),
  if_convergent_prod     number(1),
  group_no               number(12),
  group_ofr_id           number(15),
  std_group_ofr_id       number(15),
  tele_emp_flag          number(1),
  acct_id                number(12),
  user_name              varchar2(250),
  prd_address            varchar2(100),
  user_unit              varchar2(100),
  user_contact_nbr       varchar2(20),
  age                    integer,
  std_gender_code        number(15),
  exch_id                varchar2(30),
  connect_box_id         varchar2(50),
  res_zone_id            varchar2(50),
  emp_id                 varchar2(64),
  cde_channel_type_cd    varchar2(10),
  std_channel_type_cd    number(15),
  cde_so_channel_type_cd varchar2(10),
  std_so_channel_type_cd number(15),
  cust_id                number(12),
  cde_cust_type_id       varchar2(10),
  std_cust_type_id       number(15),
  cde_sale_organize_cd   varchar2(10),
  std_sale_organize_cd   number(15),
  cde_cert_type_cd       varchar2(10),
  std_cert_type_cd       number(15),
  cert_nbr               varchar2(40),
  cde_credit_grade_cd    varchar2(10),
  std_credit_grade_cd    number(15),
  complete_date          date,
  innet_date             date,
  outnet_date            date,
  stop_date              date,
  join_month             integer,
  std_join_level_cd      varchar2(2),
  owe_months             number(9),
  stop_month             integer,
  std_new_old_cd         varchar2(2),
  std_stop_level_cd      number(15),
  std_brand_cd           varchar2(10),
  std_s_cust_brand_cd    number(15),
  std_e_cust_brand_cd    number(15),
  high_user              number(8),
  product_family_id      number(10),
  is_arrive              number(1),
  is_innet_arrive        number(1),
  is_bil_arrive          number(1),
  prd_complete_in        number(1),
  prd_complete_out       number(1)
)
  tablespace tbs_02
partition by list (date_cd)
(
  partition tp_serv_day_20100501 values ('20100501')
);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
创建 Oracle 分区表的一般步骤如下: 1. 创建分区表的分区策略。这个步骤包括选择分区键(用于决定如何分区)、选择分区方法(例如按范围或按列表分区)以及选择分区数目。 2. 创建分区表。在创建表时,需要指定分区策略。在表定义分区键列。 3. 创建表分区。创建表分区时,可以指定分区的名称、分区的范围(例如分区的日期范围)、分区的存储属性等。 以下是一个示例,展示如何创建一个基于时间范围的分区表: ``` CREATE TABLE sales_data ( id NUMBER, sale_date DATE, product_name VARCHAR2(50), sale_amount NUMBER(12, 2) ) PARTITION BY RANGE(sale_date) INTERVAL(NUMTOYMINTERVAL(1, 'MONTH')) ( PARTITION sales_data_2019 VALUES LESS THAN (TO_DATE('2019-12-01', 'YYYY-MM-DD')), PARTITION sales_data_2020 VALUES LESS THAN (TO_DATE('2020-12-01', 'YYYY-MM-DD')), PARTITION sales_data_2021 VALUES LESS THAN (TO_DATE('2021-12-01', 'YYYY-MM-DD')) ); ``` 在上面的示例,我们创建了一个基于 `sale_date` 列的分区表。使用 `PARTITION BY RANGE` 语句来指定分区方法和分区键列。使用 `INTERVAL` 子句来指定新分区的时间间隔(这里设置为每个月)。我们还使用 `VALUES LESS THAN` 子句创建了三个分区,分别对应于 2019 年、2020 年和 2021 年。请注意,我们还可以在表创建后动态添加新分区。 当表分区创建后,我们可以像处理常规表一样处理分区表。例如,可以使用 `INSERT INTO` 语句向分区表插入数据。Oracle 自动将每个插入的行放入适当的分区。可以使用 `SELECT` 语句查询分区表的数据,也可以使用其他常规表操作来处理分区表
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值