CREATE OR REPLACE PROCEDURE guan_add_partition
/*
/*为一个用户下所有分区表自动增加分区.分区的列为date类型,分区名类似:p200706.
/*create by David
*/
AS
v_table_name VARCHAR2 (50);
v_partition_name VARCHAR2 (50);
v_month CHAR (6);
v_add_month_1 CHAR (6);
v_sql_string VARCHAR2 (2000);
v_add_month VARCHAR2 (20);
CURSOR cur_part
IS
SELECT DISTINCT u.table_name, MAX (p.partition_name) max_part_name
FROM user_tables u, user_tab_partitions p
WHERE u.table_name = p.table_name AND u.partitioned = 'YES'
GROUP BY u.table_name;
BEGIN
SELECT TO_CHAR (SYSDATE, 'yyyymm')
INTO v_month
FROM DUAL;
SELECT TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyymm')
INTO v_add_month_1
FROM DUAL;
SELECT TO_CHAR (ADD_MONTHS (TRUNC (SYSDATE, 'mm'), 2), 'yyyy-mm-dd')
INTO v_add_month
FROM DUAL;
OPEN cur_part;
LOOP
FETCH cur_part
INTO v_table_name, v_partition_name;
EXIT WHEN cur_part%NOTFOUND;
IF TO_NUMBER (SUBSTR (v_partition_name, 2)) <=
TO_NUMBER (SUBSTR (v_month, 1))
THEN
v_sql_string :=
'alter table '
|| v_table_name
|| ' add partition p'
|| v_add_month_1
|| ' VALUES LESS THAN ( to_date('''
|| v_add_month
|| ''',''yyyy-mm-dd'') ) tablespace ONLINE_INSPECT_SYSTEM';
EXECUTE IMMEDIATE v_sql_string;
ELSE
NULL;
END IF;
END LOOP;
CLOSE cur_part;
END;
/
分享到:
相关推荐
描述中提到的"自动创建分区表存储过程",是Oracle数据库中用于自动化创建分区表的一种方法。存储过程是一组预编译的SQL语句和PL/SQL代码,可以作为一个单元执行,提高了代码的重用性和效率。在这个特定的情况下,...
本文将深入探讨如何实现MySQL的自动创建与删除分区,主要关注时间分区,并介绍相关存储过程和事件的设置。 首先,我们需要理解MySQL分区的概念。分区是将一个大表逻辑上划分为多个较小的部分,每个部分称为一个分区...
在这个特定的存储过程中,可能包括了根据某些条件(如时间、ID范围等)自动为表创建分区的逻辑,以及当不再需要某些分区时,自动删除这些分区的逻辑。这在处理大量历史数据时尤其有用,例如,可以定期清理过期的数据...
文件是本人oracle10g分区表自动按时间创建、删除分区的存储过程,测试代码,通过job调用存储过程,每天午夜12点运行一次。妥妥!跟大家分享下!
在创建分区表实例后,需要自动创建新的分区。自动创建新的分区需要查询该表的最大分区,来判断是否需要创建新分区。思路是:查询最大分区-->将最大分区值日期字段与当天的日期做比较。如果相等就提前建好明天的日期...
7. **脚本使用说明**:通常,该脚本会包含SQL语句,用于创建分区表和定义分区策略。DBA需要根据实际业务需求,调整脚本中的参数,如分区字段、分区数量、分区边界等。 8. **注意事项**:在使用自动分区脚本时,需...
资源中包括两个存储过程,包括:自动创建分区方案,自动新增分区; 两个存储过程注释详细,方便没有对千万级别数据表分区经验的小白也能快速的完成分区工作
间隔分区是Oracle 11g版本中引入的一个重要特性,它允许数据库自动创建分区,从而简化了对大量数据进行管理的过程。 ### 间隔分区的特点 1. **由Range分区派生而来**: - 间隔分区本质上是对范围分区(Range ...
最后,通过插入一条新记录(测试时使用,生产环境不建议操作),来验证分区表是否能够根据新数据的日期自动创建新的分区及其对应的索引。 ```sql INSERT INTO USER_ORDER (ID, CREATE_TIME) VALUES (1, ADD_MONTHS...
2.Legacy是传统的BIOS启动引导,对应的磁盘分区格式是MBR,UEFI引导对应的磁盘分区格式是GPT 3.传统BIOS:至少有一个活动的主分区,用于系统启动时与bios对接数据 4.uefi:必须有一个fat32格式的esp分区,用于存放...
pgsql创建自增ID,建表,创建索引,创建分区表
在数据库管理中,分区表是一种优化查询性能的技术,它将一个大表分成多个较小、更易管理的部分,每个部分称为一个分区...通过编写Python脚本自动化创建分区表,可以提高开发效率,减少错误,并使得数据库管理更加灵活。
### Linux 创建分区详解 ...通过以上步骤,我们不仅完成了在 Linux 中创建分区的过程,还学会了如何查看系统状态、格式化磁盘、挂载分区以及配置自动挂载等功能。这对于日常的系统管理和维护工作具有重要意义。
SQL Server 2008 不支持自动分区,需要手动创建分区函数。CREATE PARTITION FUNCTION 语句用于创建分区函数,例如: ```sql CREATE PARTITION FUNCTION partition_function_name(DATETIME) AS RANGE RIGHT FOR ...
例如,可以根据ID创建分区,如`PARTITION BY RANGE (id)`,小于8的值存入p0分区,大于7的值存入p1分区。使用`MAXVALUE`关键字可以包含所有未指定的更大值。 2. **LIST分区**:类似于RANGE分区,但不是连续区间,...
4. **自动分区**:标题中提到的“自动分区”可能是指GHOST具有的自动化功能,比如自动识别和配置分区大小、格式化新硬盘或在多台计算机上进行批量部署系统时自动划分分区。这在企业环境中特别有用,可以大大提高部署...
8. **`分区表操作.sql`和`手动创建表分区方案.sql`、`自动创建表分区方案.sql`**:这些SQL脚本提供了实际操作的例子,展示了如何创建和管理分区表,包括手动和自动创建分区的步骤,对于学习和实施Oracle表分区非常...
当分区的数据首次插入时,Oracle 将根据需要自动创建分区,而非显式指定单独的范围。 引用分区允许利用现有的父子关系对表进行分区。子表可以继承父表的分区策略,而无需在子表中存储父表的分区键列。引用分区还...
本篇将深入探讨Oracle表空间的创建命令,以及如何创建分区表和分区索引,这些都是管理大规模数据库的关键技术。 首先,我们来看Oracle表空间的创建命令。在Oracle中,表空间是用来存储数据库对象的空间,由一个或多...
2. **创建分区策略**:根据年份和月份设置分区,例如每年一个分区,每月一个子分区。 3. **编写SQL脚本**:创建一个PL/SQL过程,该过程接受当前日期,计算一年前的日期,并为这些日期创建相应的分区。 4. **调度任务...