当前位置: 首页 > news >正文

mysql查看job执行时间_Oracle通过job定时执行任务

在项目中,经常会遇到需要定时完成的任务,比如定时更新数据,定义统计数据生成报表等等,其实这些事情都可以使用Oracle的Job来完

在项目中,经常会遇到需要定时完成的任务,比如定时更新数据,定义统计数据生成报表等等,其实这些事情都可以使用Oracle的Job来完成。下面考试大就结合我们实验室项目实际,简单介绍一下在Oracle数据库中通过Job完成自动创建表的方法。

整个过程总共分为两步。虽然整个过程都非常简单,但是对于初学Oracle的生手还是有很多地方需要注意的。

首先介绍一下,创建该JOB的背景,因为每天更新的直播和点播节目信息比较多,为了方便处理,需要每天创建一张表来记录更新的节目信息,,当前数据库中已经有一张tbl_programme的表,每天创建的表的字段需要同tbl_programme保持一致,每天新创建的表的名称格式为tbl_programme_日期(例如:tbl_programme_20090214)规定每天晚上1点钟生成该天的新表。

相关阅读:

关于Oracle RAC中的job运行在哪个实例的理解

Oracle job不执行的分析处理

Oracle job interval规则

学习Oracle环境中job创建

第一步:创建一个执行创建操作的存储过程

在这一步首先要解决的问题就是构造表名。在Oracle中格式化输出时间可以用to_char函数来处理,例如:

SQL> select to_char(sysdate, ’yyyy/mm/dd hh24:mi:ss’) from dual;

TO_CHAR(SYSDATE,’YYYY/MM/DDHH2

------------------------------

2009/02/14 17:22:41

--以上SQL格式化输出了时间,要得到我们所需要的格式直接修改一下SQL即可

SQL> select to_char(sysdate, ’yyyymmdd’) from dual;

TO_CHAR(SYSDATE,’YYYYMMDD’)

---------------------------

20090214

得到时间格式字符串后我们就可以将表名的前缀和时间连接在一起形成完整的表名。这里需要注意,在Oracle中连接两个字符串需要使用‘||’符号,而在Sql Server中直接使用‘+’号就可以了,因为我以前一直在Sql Server下编程,好久都没编写Oracle的SQL所以费了很大的功夫才发现这个问题。完整的Sql就是

SQL> select ’tbl_programme_’ || to_char(sysdate, ’yyyymmdd’) from dual;

’TBL_PROGRAMME_’||TO_CHAR(SYSD

------------------------------

tbl_programme_20090214

接下来就是创建表的代码了,因为新表需要tbl_programme保持一致,所以直接CTAS来创建表那是非常适合的了,代码如下:

Create table tablename as select * from tbl_programme

如果需要指定一个TableSpace则将该SQL做适当修改:

Create table tablename tablespace p2p as select * from tbl_programme

所以整个创建存储过程的SQL就是

create or replace procedure sp_createtab_tbl_programme

Authid Current_User

as

tabname varchar(200);

begin

select ’TBL_PROGRAMME_’ || to_char(sysdate, ’yyyymmdd’) into tabname fromdual;

--create table tabname as select * from tbl_programme where 1 != 1;

execute immediate ’create table ’ || tabname ||’ tablespace p2p as select* from tbl_programme where 1 != 1’;

commit;

end;

/

这里还需要注意一下在Oracle里面如果要对一个变量赋值的话有两种方式:

(1)使用:=进行赋值

(2)使用select ‘xjkxj ’ into 变量名称 from tabname

另外,在存储过程中定义变量的时候一般放在as/is后begin前面。在存储过程一般是不能直接使用create table,truncate table这类似的语句的,如果要使用这些语句必须使用excute immediate + 所要执行的sql语句来实现。

注意上面用红色标志的语句:Authid Current_User

这个语句比较重要,如果我们在创建存储过程的时候不添加这条语句执行该存储过程将不会成功,原因是默认情况向存储过程是没有Create table等权限的,即使当前用户有DBA的权限也不行,如果存储过程中存在创建表的操作,可以有以下两种方式来解决该问题。

(1)显示的赋予该用户Create table的权限,grant create table to user.

(2)在存储过程中使用Authid Current_User 标识使用当前用户的权限。

logo.gif

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

相关文章:

  • python十大操作方法_Python基本操作方法及常见案例介绍,列表,和,以及,常用
  • python开发bi报表_BI报表有什么优势
  • python输出1到9_1-9-Python格式化字符串(格式化输出)
  • java 继承 exception_每天一点儿java---继承exception类来实现自己的异常类
  • java文件中查找字符串_Java文件中查找字符串
  • java 32位 最大内存大小_Java 32位系统int []数组的内存大小
  • java read bytes 阻塞_为什么read()的调用会永远阻塞
  • java 判断英文标点_Java判断中英文符号、标点
  • java web mysql树形结构_哪位大侠可以帮我写一段java代码!是关于根据数据库里的数据来形成一个动态树形图...
  • 怎样用java编写日志_请教一个简单的java日志怎样写
  • mysql events表_MySQL定时器Events_MySQL
  • java 批量文件下载_java线程池实现批量下载文件
  • cass简码大全_cass 简码识别
  • flask中MySQL外键_flask 外键的创建与使用
  • java deprecated 注释_在Java 9中,哪些属性已添加到@Deprecated注释中?
  • Intervention/image 图片处理扩展包的安装和使用
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java,console输出实时的转向GUI textbox
  • MySQL QA
  • PHP 的 SAPI 是个什么东西
  • STAR法则
  • vue-loader 源码解析系列之 selector
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 浅谈Golang中select的用法
  • 如何进阶一名有竞争力的程序员?
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #includecmath
  • #QT(智能家居界面-界面切换)
  • (2)STL算法之元素计数
  • (Matlab)使用竞争神经网络实现数据聚类
  • (poj1.3.2)1791(构造法模拟)
  • (二)JAVA使用POI操作excel
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)计算机毕业设计大学生兼职系统
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转) Face-Resources
  • (转)scrum常见工具列表
  • **PHP二维数组遍历时同时赋值
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET框架
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • :如何用SQL脚本保存存储过程返回的结果集
  • ??在JSP中,java和JavaScript如何交互?
  • @angular/cli项目构建--Dynamic.Form
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [Android]通过PhoneLookup读取所有电话号码
  • [CERC2017]Cumulative Code
  • [CSS]中子元素在父元素中居中
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [echarts] y轴不显示0
  • [iOS]把16进制(#871f78)颜色转换UIColor