oracle自动创建表分区
创建一个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自动创建表分区的更多相关文章
- oracle11g interval(numtoyminterval())自动创建表分区
Oracle11g通过间隔分区实现按月创建表分区 在项目数据库设计过程中由于单表的数据量非常庞大,需要对表进行分区处理.由于表中的数据是历史交易,故按月分区,提升查询和管理. 由于之前对于表分区了解不 ...
- Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理
摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■ 详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...
- sql2008 计划自动创建数据库分区【转】
本文转自:http://jingyan.baidu.com/article/6b97984d9a26ec1ca3b0bf77.html sql2008 计划自动创建数据库分区 固定增量的数据,自动创建 ...
- Oracle 10g创建表空间的完整步骤详解
本文我们主要介绍了Oracle 10g创建表空间的完整步骤,包括表空间的创建与删除.为应用创建用户以及权限的授予等操作,希望能够对您有所帮助. AD:WOT2014:用户标签系统与用户数据化运营培训专 ...
- oracle如何创建表的自增ID(通过触发器)
Oracle中创建表的自增ID(通过触发器),序列的自增ID和触发器的自增ID的区别 1.新增数据(序列) --创建示例表 -- create table Student( stuId ) not n ...
- Oracle数据库创建表是有两个约束带有默认索引
Oracle数据库创建表是有两个约束带有默认索引.1.主键primary Key:唯一索引.非空2.唯一Unique:唯一索引,可以是空值如果没有设定主键和唯一约束,表中不会有默认索引的. 建立主键/ ...
- Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间
Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一: 删除user drop ...
- Hibernate自动创建表
只要在hibernate.cfg.xml添加这句话,就可以自动生成数据表 <property name="hibernate.hbm2ddl.auto">update& ...
- Hibernate连接mysql数据库并自动创建表
天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个 ...
随机推荐
- 【python教程】Python IDE
PyCharm PyCharm是由JetBrains打造的一款Python IDE. PyCharm具备一般 Python IDE 的功能,比如:调试.语法高亮.项目管理.代码跳转.智能提示.自动完成 ...
- 新版appium绘制九宫格的一个注意点
在用appium-desktop-setup-1.6.2进行app手势密码设置时,发现move_to(x, y)相对偏移量的方法用不了,绘制的手势也是乱跑 还会抛一个错误 selenium.commo ...
- mongodb倒排索引
这周主要都花时间搞mongodb上了,业务场景是上游产出几个城市的全量道路code值,每个城市的数据量大概在100w~200w之间,每条数据对应好几个feature,形如: { code: 0, fe ...
- vue: data binding
1.文本 第一种“Mustache” 语法(双大括号)写法第二种 用v-text的指今写法第三种和第四是对es6写法的拓展写法,称模板字符串 <template> <div> ...
- cannot be read or is not a valid ZIP file
在eclipse下创建 maven 项目,运行 flowable 6.1.2 配置maven之后,下载相应的依赖库. 发现报错: Archive for required library: '/Use ...
- Android 进阶10:进程通信之 Messenger 使用与解析
读完本文你将了解: Messenger 简介 Messenger 的使用 服务端 客户端 运行效果 使用小结 总结 代码地址 Thanks 前面我们介绍了 AIDL 的使用与原理,这篇文章来介绍下 A ...
- charles抓包并分析问题
1.抓包并分析 某列表页 传入的参数: -------------------------------------------------------------------------------- ...
- Java 对称加密
最近在做一个用户 token 功能,学习了加密相关 AES/DES.RSA 等.其中涉及一个对称和非对称加密问题.对称加密虽然没有非对称加密那样安全性高,但好处是加密速度快,但某些场合还是可以选择使用 ...
- php str_pad();
<?php $str = "Hello World"; echo str_pad($str,30,"."); ?> 运行实例 定义和用法 str_p ...
- Oracle Sql Developer 连接oracle
PL/Sql 初次使用需要配置文件内容,对于我这种Oracle新手来说各种配置有点凌乱,所以果断选择Sql Developer. 选择它是因为初次使用的时候它不用想PL/Sql那样配置文件,而只需要添 ...