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与数据库表建立映射关系,是一个 ...
随机推荐
- 使用命令行启动spring boot项目
1.找到项目路径 cd target 2.敲命令--------java -jar xxxx.jar ------------------------------------------------- ...
- Solr简单测试
import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; impor ...
- xcrun: error: active developer path (/Users/XJW/Desktop/Xcode.app/Contents/Developer) does not exist, use `xcode-select --switch path/to/Xcode.app` to
问题: 装了双xcode 删掉低版本 (注意:低版本xcode 开启过项目 ) 创建git时报错 解决方法: sudo xcode-select -switch /Applications ...
- 【Hive】任务空间不足错误
hive中跑任务的时候报错 2014-10-09 10:40:27,368 Stage-1 map = 100%, reduce = 32%, Cumulative CPU 2772.48 sec 2 ...
- windows钩子
(转自:http://wenku.baidu.com/view/5d41fdbec77da26925c5b08d.html) Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消 ...
- Lua学习---编译生成lua和luac
众所周知,Lua是一种强大的脚本语言,并且这种语言是用C语言实现的.为什么要学习这门语言?因为它可以增强我看C语言代码的功底. 我下的Lua版本是Lua5.3,关于Lua5.3的简介如下: http: ...
- verilog case 语句合并问题
有时候在case语句中会有不同选择执行相同操作的情况,为了简化代码,可以将其合并. 以下解答来自百度知道(由于排版问题,有相应修改): reg [1:0]addr_cnt=2'b11; reg rea ...
- 关于file.writelines换行符的添加
和file.readlines/readline不同,file.writelines(l)如果l元素没有换行符,writelines是不会自动加入换行符的,需要我们自己添加,就像这样. import ...
- 高级C/C++编译技术之读书笔记(二)之库的概念
最近有幸阅读了<高级C/C++编译技术>深受启发,该书深入浅出地讲解了构建过程(编译.链接)中的各种细节,从多个角度展示了程序与库文件或代码的集成方法,提出了面向代码复用和系统集成的软件架 ...
- linux下安装boost
linux平台下要编译安装除gcc和gcc-c++之外,还需要两个开发库:bzip2-devel 和python-devel,因此在安装前应该先保证这两个库已经安装:#yum install gcc ...