Variable CHAR dans EXECUTE IMMEDIATE
Bonjour,
J'arrive à créer correctement la procédure stockée suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| CREATE OR REPLACE PROCEDURE PH_SEQ5
(
MyPeriode CHAR
)
IS
-- Déclaration variables locales
stSql VARCHAR2(3000);
BEGIN
stSql:='CREATE OR REPLACE VIEW PH_VUE_TEMP AS SELECT * FROM PH_EMI_AG WHERE TRTPER_PNU='||MyPeriode;
EXECUTE IMMEDIATE (stSql);
END;
/ |
Mais à l'exécution avec une variable alphanumérique :
Code:
CALL PH_SEQ5('2012H38');
J'obtiens l'erreur :
Citation:
CALL PH_SEQ5('2012H38')
Error at line 33
ORA-00933: SQL command not properly ended
ORA-06512: at "A263.PH_SEQ5", line 17
Si j'exécute le code suivant ça marche : Dans la table PH_EMI_AG, le champ TRTPER_PNU est de type VARCHAR2(7).
J'ai essayé différentes combinaisons avec les quotes sans succès.
Si quelqu'un a une idée, je suis preneur.
Merci.