sysdate-1在Oracle Jobs中不起作用

时间:2016-10-20 04:45:37

标签: sql oracle date plsql

我在Oracle中有一个存储过程。我想在Oracle的JOBS中调用它。

DECLARE 
  P_DATE   DATE;
  BEGIN    

  P_DATE := TO_DATE ('19/10/2016', 'DD/MM/YYYY');

  MITRA.PENJUALAN_ANTAR_CABANG.REPORTKONSOLRK ( P_DATE );
  COMMIT; 
END;

当我执行P_DATE作为' 19/10/2016'时,结果是正确的。但是当我在下面改变它时,结果不会显示。

DECLARE
   P_DATE   DATE;
BEGIN
   P_DATE := TO_DATE (TRUNC (SYSDATE - 1), 'DD/MM/YYYY');

   MITRA.PENJUALAN_ANTAR_CABANG.REPORTKONSOLRK (P_DATE);
   COMMIT;
END;

我的查询错误是什么,而如果我运行select trunc(SYSDATE-1) from dual则日期是正确的。

1 个答案:

答案 0 :(得分:4)

SYSDATE - 1已经是date。将其传递给to_date将产生语法错误。只需放弃to_date电话就可以了:

P_DATE := TRUNC(SYSDATE - 1);