Heim >Datenbank >MySQL-Tutorial >Oracle分区表使用实例

Oracle分区表使用实例

WBOY
WBOYOriginal
2016-06-07 17:08:38897Durchsuche

Oracle分区表使用实例: create or replace procedure bl_partition is v_sql varchar(1024); v_count int; v_part

Oracle分区表使用实例:

create or replace procedure bl_partition is
  v_sql       varchar(1024);
  v_count     int;
  v_partname  varchar2(32);
  v_startdate date;
  v_enddate   date := trunc(sysdate) + 1;
begin
  v_sql := 'select count(*) from user_tables where table_name=''BL_TEST''';
  execute immediate v_sql
    into v_count;
  if v_count = 0 then
    v_sql := 'create table bl_test (period date,abcd varchar2(20)) nologging partition by range (period)
    (partition pmax values less than (MAXVALUE) tablespace bl_test)';
    execute immediate v_sql;
  end if;
  v_sql := 'select max(partition_name) from user_tab_partitions where table_name=''BL_TEST'' and partition_name''PMAX''';
  execute immediate v_sql
    into v_partname;
  if v_partname is null then
    v_startdate := trunc(sysdate) - 2;
  else
    v_startdate := to_date(substr(v_partname, 2), 'yyyymmdd');
  end if;
  while v_startdate     v_startdate := v_startdate + 1;
    v_partname  := 'p' || to_char(v_startdate, 'yyyymmdd');
    v_sql       := 'alter table bl_test split partition pmax at (to_date(''' ||
                   to_char(v_startdate + 1, 'yyyyymmdd') ||
                   ''',''yyyymmdd'')) into (partition ' || v_partname ||
                   ',partition pmax)';
    execute immediate v_sql;
  end loop;
end bl_partition;

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Oracle读、写分离的实现Nächster Artikel:Oracle 取规定位置的子串