Bonjour à tous,
j'ai un léger soucis avec 2 petites procédures PL/SQL.
En fait, ma première procédure, va chercher une date dans une table > créer une table temporaire > stocke la date dans cette table > et update la date dans la table principale :
Et ma 2ème procédure va récupère la date stockée dans la table temporaire > la met à la place de la date de la table principale > et supprime la table temporaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 CREATE OR REPLACE PROCEDURE SCHEMA.P_DATE_CHECKPOINT IS s#QUERY_SEL_DATE DATE; s#DATE_TMP DATE; BEGIN s#DATE_TMP:= '01/01/1900'; s#QUERY_SEL_DATE:= 'SELECT CP.LAST_RUN_DATE FROM CHECK_POINT CP WHERE CP.CP_ID = 5'; EXECUTE IMMEDIATE 'CREATE TABLE CHECK_POINT_TMP (LAST_RUN_DATE DATE)'; EXECUTE IMMEDIATE 'INSERT INTO CHECK_POINT_TMP (LAST_RUN_DATE) VALUES ('|| s#QUERY_SEL_DATE ||')'; EXECUTE IMMEDIATE 'UPDATE CHECK_POINT CP SET LAST_RUN_DATE = '|| s#DATE_TMP || 'WHERE CP.CP_ID = 5'; END; /
Lorsque je créer ces proc, pas de soucis, mais lorsque j'essaie de les executer, j'ai cette erreur (la même pour les 2), voici celle de la première :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CREATE OR REPLACE PROCEDURE SCHEMA.P_CHECKPOINT_INITIAL_DATE IS s#QUERY_SEL_DATE_TMP DATE; BEGIN s#QUERY_SEL_DATE_TMP:= 'SELECT CPT.LAST_RUN_DATE FROM CHECK_POINT_TMP CPT'; EXECUTE IMMEDIATE 'UPDATE CHECK_POINT CP SET LAST_RUN_DATE = '|| s#QUERY_SEL_DATE_TMP || 'WHERE CP.CP_ID = 5'; EXECUTE IMMEDIATE 'DROP TABLE CHECK_POINT_TMP'; END; /
ORA-01858: Caractère non numérique trouvé à la place d'un caractère numérique
ORA-06512: à "SCHEMA.P_DATE_CHECKPOINT", ligne 7
ORA-06512: à ligne 1
Quelqu'un peut-il m'aider? Je ne sais pas si j'ai vraiment fait une erreur ou bien si c'est une histoire de quote mal placée ou manquante...
Partager