首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Crontab定时执行Oracle存储过程

需求描述 我们有一个Oracle的存储过程,里面是每个月需要执行一下,生成报表,然后发送给业务部门,这一个功能我们有实现在系统的前台界面(如图1-1),但是客户每次都不点重新生成,导致导出报表时报出异常...图1-1 图1-2 问题分析  既然它是一个存储过程,我们定位到了该请求相对应的存储过程,如下图所示 图1-3 我们看它的参数,只有两个,一个是开始时间,表示当月的开始时间,一个时结束时间,表示当月结束时间...一,首先看单纯在plsql是如何调用这个存储过程的,我通过定义一个startdate和enddate,然后通过Oracle的时间函数last_day计算出每月的最后一天,开始的第一天我是直接在月份拼接了...我们在相关的路径新建一个文件call_proc_high_settle_rep_month.sh,通过执行sqlplus,然后去执行上述的内容 脚本内容如下: 其中sqlplus中的zh表示数据库账户名...,*表示密码,zh10g表示数据库实例名,是你配置在tnsnames.ora的连接名。

1.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法

    一、前言 我们知道在plsql里可以通过下面方式执行存储过程, begin P_ACCOUNT(202004270000) ; end; --或者 call P_ACCOUNT(202004270000...) 但是在代码里如何调用存储过程呢,我试了一些网上大家提供的方法,基本没用效果,包括在@Query后面加{call P_ACCOUNT(?...什么存储过程名称的,或者各种接口、实现类互相调用的,都是千篇一律,不知道哪家copy哪家的,都没有任何效果 。...或者这些方法对他们的项目可能有用,亦是我的姿势可能不对,但是总的来说,下面这个方法是我亲测可用的,而且实现起来相对更简单,十行代码都不到就能实现 二、调用存储过程Demo //公众号灵儿的笔记:zygxsq...中的存储过程名称 A_ID :就是入参,如果还有其他入参,就再写一行, storedProcedure.registerStoredProcedureParameter("xxx参数", 参数类型, ParameterMode.IN

    2.4K20

    MySQL---数据库从入门走向大神系列(八)-在java中执行MySQL的存储过程

    http://blog.csdn.net/qq_26525215/article/details/52143733 在上面链接的博客中,写了如何用MySQL语句定义和执行存储过程 Java执行存储过程:...Java演示执行带输入参数的存储过程: 构造 call 转义序列时,请使用 ?(问号)字符来指定 IN 参数。此字符充当要传递给该存储过程的参数值的占位符。...向 setter 方法传递值时,不仅需要指定要在参数中使用的实际值,还必须指定参数在存储过程中的序数位置。例如,如果存储过程包含单个 IN 参数,则其序数值为 1。...Java演示执行带输入输出参数的存储过程: 构造 call 转义序列时,请使用 ?(问号)字符来指定 OUT 参数。 此字符充当要从该存储过程返回的参数值的占位符。...当您对于 OUT 参数向 registerOutParameter 方法传递一个值时,不仅必须指定要用于此参数的数据类型,而且必须在存储过程中指定此参数的序号位置或此参数的名称。

    1.1K20

    oracle数据库安全,事务机制,触发器和存储过程

    一、数据库安全机制 如果任何用户都可以随便查看和操作你的数据,那么数据的安全性将不复存在,可以通过限制用户操作权限防止数据被窃取、读脏和篡改。...系统角色 oracle系统角色 connect    允许用户增删改记录,创建表、视图、序列、簇和同义词 resource    在connect权限之上拥有创建过程、触发机制和索引的权限 DBA...触发器和存储过程 触发器和存储过程在一定程度上减少了DBA的工作量,可以将每次操作之后各种相关操作交由触发器和存储过程完成。...select trigger_name from all_triggers where table_name='table_name'; 删除触发器 drop trigger trigger_name; 2、存储过程...(1)创建存储过程(基本结构) create procedure procedure_name ( para1 in number, para2 in number )IS

    1.6K100

    MySQL 简单查询语句执行过程分析(三)从存储引擎读数据

    本文是 MySQL 简单查询语句执行过程分析 6 篇中的第 3 篇,第 1 ~ 2 篇请看这里: MySQL 简单查询语句执行过程分析(一)词法分析 & 语法分析 MySQL 简单查询语句执行过程分析(...InnoDB 存储引擎中读取数据,所以文中涉及到存储引擎的地方,都直接使用 InnoDB 代替了。...接下来就要开始从 InnoDB 读取记录了,由于 InnoDB 记录存储本身也是个很大的话题,要说清楚怎么定位到要查找的记录,怎么读取下一条记录这些细节,需要很多关于 InnoDB 的文件存储以及 Buffer...3.1 预读缓存 InnoDB 读取数据的第一步,就是先看看预读缓存里有没有记录,如果有就直接取出 1 条记录返回给 server 层,如果没有,才会去 Buffer Pool 中读取记录。...SQL 执行过程,进行可重复读时需要使用到的信息。

    1.2K20

    MySQL---数据库从入门走向大神系列(五)-存储过程

    本篇博客讲解: 自动增长列、字段值唯一性约束、存储过程、区分大小写的查询!...最开始不设置就从0开始增长) (后面的id如果有值了,如果添加数据时没有设置id,MySQL就会用最大的id加1做为最新的id) 注意:auto_increment 在MySQL中支持,其他的数据库设置自动增长列中关键字不一样...存储过程: 其实这个SQL中的存储过程很像Java中的定义函数,调用函数。...’;’号改成其它,如’&&’,这样存储过程中定义的分号就不会被看成是语句结束(否则会直接被提交)。...select * from stud; end&& delimiter ; call p1;/*调用p1()中的SQL语句,如果没有call之前,p1()中的SQL语句是没有被执行的*/ ?

    44510

    【DB笔试面试575】在Oracle中,SQL语句的执行过程有哪些?

    ♣ 题目部分 在Oracle中,SQL语句的执行过程有哪些? ♣ 答案部分 Oracle数据库里SQL语句的执行过程可以如下图所示: ?...在这个过程中,Oracle会先执行对目标SQL的语法、语义和权限的检查: ① 语法检查(Syntax Check)是检查目标SQL的拼写是否正确,例如错将关键字“FROM”写成“FORM”,将“SELECT...如果找到了匹配的共享游标,那么Oracle就会把存储于该共享游标中的解析树和执行计划直接拿过来重用,这相当于跳过了后续的“查询转换”和“查询优化”这两个步骤,直接进入到“实际执行”阶段。...在查询转换过程中,Oracle会根据一些规则来决定是否对目标SQL执行查询转换,这些规则在Oracle不同的版本里不尽相同。...在Oracle 9i中,查询转换是独立于优化器的,它与优化器的类型无关,但是从Oracle 10g开始,Oracle会对某些类型的查询转换(比如子查询展开、复杂视图合并等)分别计算经过查询转换后的等价改写

    1.4K10

    【DB笔试面试387】简述Oracle中存储过程,游标和函数的区别。

    Q 题目 简述Oracle中存储过程,游标和函数的区别。 A 答案 游标类似指针,游标可以执行多个不相关的操作。...存储过程和函数的区别如下所示: ① 函数可以理解为是存储过程的一种; ② 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值; ③ 函数和存储过程都可以通过OUT参数返回值,如果需要返回多个参数那么建议使用存储过程...; ④ 在SQL数据操纵语句中只能调用函数而不能调用存储过程。...DB笔试面试历史连接 http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w About Me:小麦苗 ● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

    72420

    细致入微:Oracle中执行计划在Shared Pool中的存储位置探秘

    这两天我一直在想一个问题,那就是 Oracle 的执行计划到底存储在什么地儿?它会是一种什么样的格式? 这里我试图对这个问题做一点我自己认为的解释,这个解释可能是有问题的。...我认为验证的方法就是看你是否能够仅仅看着这张图,在1个小时的时间内把这张图的内容解释清楚。 这张图也许能够用来衡量你对 library cache 的了解程度。...从上述内容中我们可以看到,子 cursor 是没有名字的,这个其实很正常——因为 Oracle 是通过先访问其 parent cursor 后才会来访问它。...那么剩下的就只有一种可能,就是 Oracle 把 sql 的执行计划存储在了 heap 6里。...我猜测 Oracle 把 sql 的执行计划存在了这个 sql 的子 cursor 的 heap 6(也就是 sql area)中,只不过存储的形式是编译好的二进制格式。

    83750
    领券