打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
浅谈Oracle中大数据量表的管理(2)

自动创建分区实现如下:

  /**************************************************************************

  Program Name:Add_Partition

  Description:

  创建某个用户下个月的所有分区

  ***************************************************************************/

  PROCEDURE add_partition (v_schema IN VARCHAR2)

  IS

  CURSOR c_td_table

  IS

  SELECT   tablename

  FROM  h_retention

  WHERE typeid = 'PARTITION'

  AND schemaname = UPPER (v_schema)

  ORDER BY tablename;

  v_cur         BINARY_INTEGER;

  v_int         BINARY_INTEGER;

  v_partition   VARCHAR2 (30);

  v_date        DATE;

  v_days        NUMBER;

  sql_stmt      VARCHAR2 (1000);      -- String used to save sql statement

  err_msg       VARCHAR2 (300);

  BEGIN

  v_date := TRUNC (ADD_MONTHS (SYSDATE, 1), 'MM');

  v_days :=

  TO_NUMBER (TO_CHAR (LAST_DAY (ADD_MONTHS (SYSDATE, 1)), 'DD'));

  v_cur := DBMS_SQL.open_cursor;

  FOR v_table IN c_td_table

  LOOP

  v_date := TRUNC (ADD_MONTHS (SYSDATE, 1), 'MM');

  v_partition := v_table.tablename;

  FOR i IN 1 .. v_days

  LOOP

  BEGIN

  sql_stmt :=

  'ALTER TABLE '

  || v_schema

  || '.'

  || v_table.tablename

  || ' ADD PARTITION '

  || v_partition

  || '_'

  || TO_CHAR (v_date, 'YYMMDD')

  || ' '

  || 'VALUES LESS THAN (TO_DATE('''

  || TO_CHAR (v_date + 1, 'YYYY-MM-DD')

  || ''',''YYYY-MM-DD'')) ';

  DBMS_SQL.parse (v_cur, sql_stmt, DBMS_SQL.native);

  v_int := DBMS_SQL.EXECUTE (v_cur);

  EXCEPTION

  WHEN OTHERS

  THEN

  err_msg :=

  v_partition

  || ': Create '

  || TO_CHAR (v_date, 'YYMMDD')

  || ' partition unsuccessfully! Error Information:'

  || SQLERRM;

  log_insert (err_msg);  --You can define your own log_insert function

  COMMIT;

  END;

  v_date := v_date + 1;

  END LOOP;

  END LOOP;

  DBMS_SQL.close_cursor (v_cur);

  END;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
浅谈Oracle中大数据量表的管理
两个结构一样的表进行数据差分
DBMS
使用存储过程来查询所有表的关键字
精妙的SQL语句
在SQL Server中如何获取某用户对某个表中所有权限
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服