创建一个table,记录哪些表需要创建表分区

create table STAT_TABLE
(
tablename VARCHAR2(),
pre_partition_name VARCHAR2(),
tb_name VARCHAR2(),
add_inteval NUMBER,
owner VARCHAR2()
)
tablespace USERS
pctfree
initrans
maxtrans
storage
(
initial 64K
next 1M
minextents
maxextents unlimited
);

定时执行存储过程

CREATE OR REPLACE PROCEDURE SP_ADD_PARTITION(statdate DATE) Authid Current_User AS

  V_CREATETB_SQL     VARCHAR2();

  V_TB_CNT           NUMBER;
V_PARTITION_CNT NUMBER;
V_STAT_DATE DATE DEFAULT statdate;
V_STATDATE_STR VARCHAR2() DEFAULT TO_CHAR(V_STAT_DATE, 'YYYYMMDD');
V_PARTITION_NAME VARCHAR2();
V_TB_NAME_P VARCHAR2();
V_TB_NAME VARCHAR2();
V_DATAFILE VARCHAR2();
V_SQL_CMD VARCHAR2();
V_TABLENAME VARCHAR2();
V_SUB_PARTITION NUMBER; BEGIN
FOR TAB IN (SELECT T.TABLENAME,
T.PRE_PARTITION_NAME,
T.TB_NAME,
T.ADD_INTEVAL,
T.OWNER
FROM STAT_TABLE T
) LOOP
BEGIN
V_PARTITION_NAME := TAB.PRE_PARTITION_NAME || V_STATDATE_STR;
V_TB_NAME := TAB.TB_NAME;
V_TABLENAME := TAB.TABLENAME; BEGIN
/*判断表分区是否存在*/
SELECT COUNT()
INTO V_PARTITION_CNT
FROM DBA_TAB_PARTITIONS t
WHERE T.TABLE_NAME = upper(TAB.TABLENAME)
AND T.PARTITION_NAME = V_PARTITION_NAME
and T.TABLE_OWNER=upper(TAB.Owner); IF V_PARTITION_CNT = THEN --判断是否需要创建子分区
V_SQL_CMD := 'ALTER TABLE ' || tab.Owner ||'.' ||TAB.TABLENAME ||
' ADD PARTITION ' || V_PARTITION_NAME ||
' VALUES LESS THAN (to_date(''' ||
TO_CHAR(V_STAT_DATE + TAB.ADD_INTEVAL, 'YYYYMMDD') ||
''',''yyyymmdd'')) TABLESPACE ' || V_TB_NAME ||' COMPRESS';
EXECUTE IMMEDIATE V_SQL_CMD;
END IF;
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line(V_SQL_CMD);
END; EXCEPTION WHEN OTHERS THEN
--sp_etl_error_logs_pro('SP_ADD_PARTITION', v_sql_cmd, V_STATDATE_STR);
null;
END;
END LOOP;
END SP_ADD_PARTITION;

oracle自动创建表分区的更多相关文章

  1. oracle11g interval(numtoyminterval())自动创建表分区

    Oracle11g通过间隔分区实现按月创建表分区 在项目数据库设计过程中由于单表的数据量非常庞大,需要对表进行分区处理.由于表中的数据是历史交易,故按月分区,提升查询和管理. 由于之前对于表分区了解不 ...

  2. Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理

    摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■  详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...

  3. sql2008 计划自动创建数据库分区【转】

    本文转自:http://jingyan.baidu.com/article/6b97984d9a26ec1ca3b0bf77.html sql2008 计划自动创建数据库分区 固定增量的数据,自动创建 ...

  4. Oracle 10g创建表空间的完整步骤详解

    本文我们主要介绍了Oracle 10g创建表空间的完整步骤,包括表空间的创建与删除.为应用创建用户以及权限的授予等操作,希望能够对您有所帮助. AD:WOT2014:用户标签系统与用户数据化运营培训专 ...

  5. oracle如何创建表的自增ID(通过触发器)

    Oracle中创建表的自增ID(通过触发器),序列的自增ID和触发器的自增ID的区别 1.新增数据(序列) --创建示例表 -- create table Student( stuId ) not n ...

  6. Oracle数据库创建表是有两个约束带有默认索引

    Oracle数据库创建表是有两个约束带有默认索引.1.主键primary Key:唯一索引.非空2.唯一Unique:唯一索引,可以是空值如果没有设定主键和唯一约束,表中不会有默认索引的. 建立主键/ ...

  7. Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间

    Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一:  删除user drop ...

  8. Hibernate自动创建表

    只要在hibernate.cfg.xml添加这句话,就可以自动生成数据表 <property name="hibernate.hbm2ddl.auto">update& ...

  9. Hibernate连接mysql数据库并自动创建表

    天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个 ...

随机推荐

  1. yii2: oracle汉字占用字节长度

    OCIStmtExecute: ORA-12899: value too large for column "WSG"."WX_ENTER_TASTE".&qu ...

  2. php将科学计算法得出的结果转换成原始数据

    由于php最大只支持显示 15位因的数据运算,大于15位的2数加减乘除的数据的结果,会直接用科学计数法显示, 但在现实生活中,科学计数法不利于普通人识别,所以,本函数将:科学计数法的出的结果转换成原始 ...

  3. 如何用VC编写供PB调用的DLL

    和编写一般的DLL方法相同,需要注意以下两点: (1)调用约定 c函数有_stdcall._cdecl._fastcall等多种调用约定,调用约定用来说明函数参数的压栈顺序和由谁(函数自身还是调用者) ...

  4. linux Centos7 下vsftpd 安装与配 FTP

    一.说明 linux 系统下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 还有一个是proftp(Profession ftp). 我们这 ...

  5. UI-自定义TabBar

    MyCustomTabBar.h文件 #import <UIKit/UIKit.h> @interface MyCustomTabBar : UITabBarController @end ...

  6. springmvc用来绑定参数的注解(转)

    引言: 原文链接:http://blog.csdn.net/kobejayandy/article/details/12690161 接上一篇文章,对@RequestMapping进行地址映射讲解之后 ...

  7. react style: 二级菜单

    1.样式 @import "../../styles/varibles"; .app-sidebar { overflow: hidden; width: 180px; > ...

  8. go 通过nginx代理后获取用户ip

    go 如果使用自己的服务器,可以直接使用 net/http 来获取 func ip(w http.ResponseWriter, r *http.Request) { fmt.Println(r.Re ...

  9. Java进阶面试问题列表

    面向对象编程的基本理念与核心设计思想 解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling). 继承(Inheritanc ...

  10. LUAROCKS 报错解决办法

    用luarocks 加载包时报错 Warning: falling back to curl - install luasec to get native HTTPS support 此时先安装 ./ ...