Oracle11g间隔分区(INTERVAL)批量规范命名-创新互联

友情提示:请在业务空闲是操作。为什么呢?

创新互联建站凭借在网站建设、网站推广领域领先的技术能力和多年的行业经验,为客户提供超值的营销型网站建设服务,我们始终认为:好的营销型网站就是好的业务员。我们已成功为企业单位、个人等客户提供了成都做网站、网站设计服务,以良好的商业信誉,完善的服务及深厚的技术力量处于同行领先地位。--Oracle 11g 间隔分区(INTERVAL)重命名,批量生成rename分区脚本 set linesize  180 set serverout on declare   v_table_owner          varchar2(100) :=  'OP%';   v_table_name_day_p     varchar2(100);   v_table_name_month_p    varchar2(100);   v_print                number:=1; --1:只打印执行脚本,2,DB直接执行   v_new_partition_name   varchar2(100);   v_sql                   varchar2(2000);   vSqlerrm               varchar2(256); begin   for i  in (select t1.table_owner,        t2.table_name,        t1.partition_name,        t2.interval,        t1.high_value   from  dba_tab_partitions t1,dba_part_tables t2   where t2.owner =  t1.table_owner    and t2.table_name = t1.table_name    and t1.interval =  'YES'    and t2.partitioning_type='RANGE'    and t1.partition_name like  'SYS\_%' escape '\'    and table_owner like v_table_owner order by  t1.table_owner,t1.partition_name) loop     if  i.interval='NUMTODSINTERVAL(1,''DAY'')' then     v_table_name_day_p :=  substr(i.table_name, 1, 19);  --日分区取前19位字符;     execute immediate 'select  to_char(' || i.high_value ||                       ' -  NUMTODSINTERVAL(1,''DAY''), ''"' ||                       v_table_name_day_p  || '"YYYY"M"MM"D"DD'') from dual'            into  v_new_partition_name;     elsif i.interval='NUMTOYMINTERVAL(1,''MONTH'')'   then     v_table_name_month_p := substr(i.table_name, 1, 23);  --月分区取前23位字符;     execute immediate 'select to_char(' || i.high_value  ||                       ' - NUMTOYMINTERVAL(1,''MONTH''), ''"'  ||                       v_table_name_month_p || '"YYYY"M"MM'') from  dual'       into v_new_partition_name;     end if;     if v_print=1  then     dbms_output.put_line('alter table ' || i.table_owner || '.'  ||i.table_name || ' rename partition ' ||i.partition_name || ' to ' ||  v_new_partition_name || ';');     elsif v_print=2 then         v_sql :=  'alter table ' || i.table_owner || '.' ||i.table_name || ' rename partition '  ||i.partition_name || ' to ' || v_new_partition_name;         execute  immediate v_sql;     end if;   end loop; exception   when others  then     vSqlerrm := sqlerrm;     dbms_output.put_line(vSqlerrm||'|'||v_sql); end;

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:Oracle11g间隔分区(INTERVAL)批量规范命名-创新互联
网页地址:http://scjbc.cn/article/dpoosi.html

其他资讯