oracle存储过程总结及优化方案

本文介绍了一个用于Oracle数据库的存储过程,该过程能够为指定表自动添加分区,支持指定开始时间和结束时间。通过此存储过程,可以有效管理和优化大型表的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、一个为指定表增加分区的存储过程:

/**
 * table_name 分割表名.
 * from_date 建立分区的开始时间.
 * to_date 建立分区的结束时间.
 */

create or replace procedure CHOUY_ADD_PARTITION(table_name in Varchar2, from_date IN DATE, to_date in DAte)

AS
   F_DATE DATE;
   T_DATE DATE;
   sql_stmt VARCHAR2 (1000);
   err_msg VARCHAR2 (300);
BEGIN
   F_DATE := trunc(from_date);
   T_DATE := trunc(to_date);
   while F_DATE < T_DATE
   LOOP
      BEGIN
         sql_stmt := 'alter table '
           || table_name
           || ' split partition P'
           || to_char(T_DATE, 'yyyymmdd')
           || ' at (to_date('''
           || to_char(F_DATE + 1, 'yyyymmdd')
           || ''',''yyyymmdd'')) '
           || 'into (partition P'
           || to_char(F_DATE, 'yyyymmdd')
           || ',partition P'
           || to_char(T_DATE, 'yyyymmdd')
           || ') ';
         execute immediate sql_stmt;
         commit;
         F_DATE := F_DATE + 1;
      EXCEPTION
         WHEN OTHERS THEN
          err_msg := ' partition unsuccessfully! Error Information:'
           || SQLERRM;
      END;
   END LOOP;
END;

 

 

术资料:

Oracle存储过程编写经验和优化措施:  http://lusong163.itpub.net/post/14139/335461

Oracle存储过程学习:                       http://www.iteye.com/topic/288536

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值