2017-09-26 8 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)。PL/SQLコマンドではなくSQL * Plusコマンドであり、コマンドラインからプロシージャをネストすることなく実行できます開始/終了ブロック。 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; 
    

だから、あなたのコードは次のようになります

関連する問題