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:
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.
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;