2017-09-26 4 views
0

Je souhaite utiliser une variable de date (JJ/MM/AAAA HH: MI: SS) en pl/sql. J'utilise le code suivant, mais cela ne fonctionne pas:comment déclarer une variable de date (avec l'heure) en 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; 

Quelqu'un peut-il vous aider s'il vous plaît? Qu'est-ce que je fais mal?

Répondre

2

Il serait utile que vous puissiez expliquer ce que vous entendez par "ne fonctionne pas" - c'est-à-dire les messages d'erreur et/ou les résultats inattendus que vous obtenez.

Cependant, il y a quelques choses évidentes mal avec votre procédure:

  1. Vous avez la section de déclaration à l'intérieur du bloc d'exécution - qui ne va pas travailler pour ce que vous êtes désireux de le faire. Les programmes PL/SQL comprennent la section de déclaration, la section d'exécution et la section d'exception dans cet ordre.

  2. Vous essayez d'appeler une procédure en utilisant exec dans le programme PL/SQL. Cela ne va pas fonctionner comme exec (ou, pour lui donner son nom complet, execute) est une commande SQL * Plus pas une commande PL/SQL, et il vous permet d'exécuter une procédure à partir de la ligne de commande sans avoir à l'imbriquer dans un bloc début/fin. En PL/SQL, vous n'avez pas besoin d'utiliser exec.

Alors, votre code devrait ressembler à:

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;