2017-09-26 53 views
0

我想在pl/sql中使用日期(DD/MM/YYYY HH:MI:SS)变量。我正在使用下面的代码,但它不起作用:如何在pl/sql中声明变量的日期(时间)

BEGIN 
    declare dateMig date ; 
    dateMig := to_date('19/05/2017 05:05:00', 'DD/MM/YYYY HH:MI:SS'); 
    exec P_MY_PROC(100,'CHECK',dateMig); 
END; 

任何人都可以帮忙吗?我究竟做错了什么?

回答

2

如果你能解释你的意思是“不起作用” - 即你得到的任何错误消息和/或意想不到的结果,这将是有益的。

不过,也有几个明显的事情错了你的程序:

  1. 你必须执行块内声明部分 - 这不会为你想要做什么工作。 PL/SQL程序按照声明部分,执行部分和异常部分的顺序组成。

  2. 您试图在PL/SQL程序中使用exec来调用过程。这不会起作用exec(或者,为了给它的全名,execute)是一个SQL * Plus命令而不是PL/SQL命令,它允许你从命令行运行一个过程,而不必将它嵌入到开始/结束块。在PL/SQL中,你不需要使用exec。

所以,你的代码应该是这个样子:

declare 
    datemig date; 
begin 
    datemig := to_date('19/05/2017 05:05:00', 'dd/mm/yyyy hh24:mi:ss'); 

    p_my_proc(100, 'CHECK', datemig); 
end;