维护一个使用Oracle数据库的项目,需要每天执行某个存储过程,自然而然要使用Job了。由于对Oracle数据库不熟悉,故记录下来。

这个每天要执行的存储过程有一个varchar2类型的传入参数,具体执行的时候传进去的是当天的日期,如'2014/2/3'。我创建Job时Type选择的是“Stored procedure”,所以我需要另外创建一个存储过程,命名为:ExecSJUPDATE,具体代码为:

create or replace procedure ExecSJUPDATE as
dt varchar2(40);
begin
  dt:=to_char(sysdate,'yyyy-MM-dd');
  sjupdate(dt);
  commit;
end ExecSJUPDATE;

下面创建Job,具体的参数设置如下:

Oracle创建Job-程序旅途

在创建存储过程时,将 dt赋值写成了

dt:=to_char(sysdate,'yyyy/MM/dd');

程序一直没有起作用,改成

dt:=to_char(sysdate,'yyyy-MM-dd');

就好了。