2017-09-26 79 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;