如何在pl / sql中声明日期(带时间)变量

时间:2017-09-26 15:41:21

标签: date plsql oracle-sqldeveloper plsqldeveloper

我想在pl / sql中使用日期(DD / MM / YYYY HH:MI:SS)变量。我正在使用以下代码,但它不起作用:

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;

有人可以帮忙吗?我做错了什么?

1 个答案:

答案 0 :(得分:3)

如果你可以解释你的意思,那将会很有帮助。"没有工作" - 即您获得的任何错误消息和/或意外结果。

但是,您的手术有一些明显的问题:

  1. 您在执行区内有声明部分 - 这不适用于您想要做的事情。 PL / SQL程序按顺序包含声明部分,执行部分和例外部分。

  2. 您尝试在PL / SQL程序中使用exec调用过程。那不能用作exec(或者,它的全名,execute)是一个SQL * Plus命令而不是PL / SQL命令,它允许你运行来自命令行的过程,而不必将其嵌套在开始/结束块中。在PL / SQL中,您不需要使用exec。

  3. 因此,您的代码应该类似于:

    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;