`
379548695
  • 浏览: 155591 次
  • 性别: Icon_minigender_1
  • 来自: 河南郑州
社区版块
存档分类
最新评论

oracle 每月自动创建下个月的数据表

 
阅读更多

1.自动建表的存储过程


create or replace procedure sp_createtab_t_data_sensor
Authid Current_User
as
tabname varchar(200);
seqname varchar(200);
tabCount number;
seqCount number;
begin
select 'T_DATA_SENSOR_' || to_char(sysdate+1, 'yyyymm') into tabname from dual;
select 'SEQ_DATA_SENSOR_' || to_char(sysdate+1, 'yyyymm') into seqname from dual;
select  count(1) into  tabCount  from user_tables  where  table_name=tabname;
SELECT count(1) into seqCount FROM All_Sequences where SEQUENCE_NAME=seqname;
--如果存在,则删除该表
if  tabCount>0  then
   -- dbms_output.put_line('表或视图不存在!');
    execute   immediate  'drop table  '||tabname;                                           
end   if;
--创建
 execute immediate 'create table '||tabname||'
(
  SENSORID NUMBER(10) not null,
  VALUE    NUMBER(10,4),
  UNIT     VARCHAR2(50),
  GASNAME  VARCHAR2(50),
  STATUS   VARCHAR2(50),
  REVDATE  DATE not null,
  ID       NUMBER(30) not null,
  AID      NUMBER not null,
  DATADATE DATE default SYSDATE not null
)';
--如果存在,则删除该序列
if  seqCount>0  then
   -- dbms_output.put_line('表或视图不存在!');
    execute   immediate  'drop SEQUENCE  '|| seqname;                                           
end   if;
--tabCount := 0;
--seqCount := 0;
execute immediate'create sequence ' || seqname;
commit;
end;
2.job定时任务执行(每月最后一天的凌晨一点执行)

declare 
-- Local variables here 
v_jobnum number;   
begin 
-- Test statements here 
dbms_job.submit(v_jobnum,'sp_createtab_t_data_sensor;',sysdate,'TRUNC(LAST_DAY(SYSDATE))+1/24'); 
dbms_output.put_line('job '||v_jobnum||' has been submitted.'|| to_char(sysdate, 'yyyy/mm/dd hh24:mi:ss') ); 
dbms_job.run(v_jobnum,TRUE);  
COMMIT;   
end;
 
分享到:
评论

相关推荐

    oracle千万级别数据简单操作

    - 每个表空间的数据文件大小均为50MB,并存储在指定路径下。 2. **创建分区表**: - 创建了一个名为 `dinya_test` 的分区表。 - 该表具有四个字段:`transaction_id`(主键)、`item_id`、`item_description` 和...

    数据仓库日期维度表创建存储过程

    每个数据库系统有自己的语法和特性,因此在不同环境下创建日期维度表的脚本也会有所不同。例如,Oracle可能支持更复杂的函数和特性,而MySQL可能需要更简洁的解决方案。 总之,数据仓库中的日期维度表是数据分析的...

    Oracle大表分区的技术

    例如,可以先按年份范围分区,再对每个月进行散列分区。 5. **区间-散列分区**(Range-Hash Partitioning)和**列表-散列分区**(List-Hash Partitioning)也是复合分区的变种。 6. **全局索引分区**:当对分区表...

    Oracle 自动备份 v1.025 国际版

    1. **计划备份**:用户可以根据自己的需求设置定时备份计划,比如每天、每周或每月的特定时间,这样就能确保在不影响业务运行的情况下完成备份。 2. **完整备份与增量备份**:提供完整的数据库备份,以及只备份自...

    Linux下定时自动执行Oracle_SQL

    在IT领域,尤其是在数据库管理和系统自动化操作中,利用Linux下的Crontab实现Oracle SQL的定时自动执行是一项极为实用且高效的技术。本文将深入探讨如何在Linux环境下设置Crontab来定期执行Oracle SQL脚本,这一过程...

    Linux下自动备份Oracle

    `40 */8 * * *`是crontab的时间格式,具体解释为:分钟(40),每小时的第X个(*/8,即每隔8小时),每天的任意时间(*),每个月的任意一天(*),每年的任意一天(*)。 通过以上步骤,我们就成功地在Linux系统中...

    Oracle数据库异地自动备份的实现.pdf

    作者提出了一种方案,该方案利用Windows的任务计划功能和Oracle的Export工具,创建一个自动化备份流程,能够在特定时间执行数据库备份,并将备份数据传输到异地服务器。 在方案设计中,作者建议将数据中心设在新...

    oracle job 创建

    - `next_date`:设置 Job 的首次执行时间,例如 `TRUNC(LAST_DAY(SYSDATE))+2+6/24` 表示下个月的第2天凌晨6点。 - `interval`:定义 Job 的执行间隔,`TRUNC(LAST_DAY(SYSDATE))+2+6/24` 表示每个月的同一天凌晨6...

    oracle备份和恢复方案

    5. **保留策略**:保留最近两次全备和归档日志备份,以及至少保留最近一个月的EXP文件,确保数据的可恢复性。 #### 实施细节 在Windows 2000环境下,针对Oracle 8i/9i数据库,备份可以通过RMAN(Recovery Manager)...

    基于ORACLE数据库的自动气象站资料存储与检索方案.pdf

    为了存储自动气象站的数据,创建了两个主要的表:ASLEMENT用于存储观测数据,包括站号、年、月、日作为索引;STATION用于存储气象站的基本信息,如站号、纬度、经度、高度、级别和站名等。此外,还有一个DISTRICT表...

    Java自动生成数据库表实体类和mybatis接口以及xml文件

    MyBatis Generator是一个强大的工具,它能够根据数据库表结构自动创建Java实体类、Mapper接口和对应的XML配置文件。下面我们将以MyBatis Generator为例进行介绍。 1. **MyBatis Generator配置**:MBG通过一个XML...

    ORACLE自动备份方法

    3. **触发器**:选择触发器的时间规则,如每天、每周或每月等,并设置具体的执行时间。 4. **操作**:选择“启动程序”,并浏览到之前创建的备份脚本的位置(如`C:\Scripts\dbbkup.bat`)。 5. **完成设置**:确认...

    oracle实验报告

    (6)在一个单独的表上,最多只能创建三个触发器与之关联,一个INSERT触发器,一个DELETE触发器和一个UPDATE触发器。 1. 实例讲解Oracle数据库自带的几个触发器 Oracle数据库自带的几个触发器(最简单触发器格式)...

    DBMS_JOB包创建ORACLE定时任务

    - 每个季度第一个月的第1天上午11点执行:`'TRUNC(ADD_MONTHS(SYSDATE+2/24,3),'Q')-1/24'` - 每分钟执行一次:`'SYSDATE+1/1440'` #### 移除作业 移除一个作业可以通过`DBMS_JOB.REMOVE()`函数实现,只需传入作业...

    让ORACLE跑得更快

    例如,在提供的例子中,一个销售数据表(sale_data)被分区以每个月为单位存储销售记录。使用范围分区的SQL代码示例如下: ```sql CREATE TABLE sale_data ( sale_id NUMBER(5), salesman_name VARCHAR2(30), ...

    Oracle的数据类型

    - 在 Oracle 中,默认情况下字符数据类型的存储是以 ASCII 编码格式进行的。 - 字符串类型的长度单位是字节,而不是字符。这意味着如果存储多字节字符(如中文字符),则需要考虑到每个字符占用的字节数。 ##### ...

    linux下自动备份oracle数据库及拷备文件到磁带机

    在Linux环境下,对Oracle数据库进行自动备份以及将备份文件拷贝至磁带机是一项关键的任务,确保数据的安全性和可恢复性。以下将详细介绍这个过程涉及的知识点。 首先,Oracle数据库的备份通常采用两种主要方法:...

    全面学习分区表及分区索引-Oracle.pdf

    例如,可以先按照年份进行Range分区,然后再对每个月的数据进行Hash分区。 - **适用场景**:当数据结构复杂,单一的分区策略难以满足需求时。 - **优点**:能够提供更精细的数据分布控制,进一步优化查询性能。 ###...

Global site tag (gtag.js) - Google Analytics