Bonjour,
je suis en train de faire une requête dynamique. Afin de récupérer la valeur de mon curseur DBMS_SQL, je crée une table temporaire. J'insère dans cette table les valeurs des colonnes récupérées à partir de mon curseur sous forme de variables.
Mon problème intervient lorsque l'une des valeurs NUMBER est vide.
Voici le code :
Ceci m'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 vSqlInsert VARCHAR2(4000); vSqlInsert := 'INSERT INTO ' || pDynamicViewName || ' VALUES (''' || variablestring1 || ''', ' || variablenumber || ', ''' || variablestring2 || ''')'; DBMS_OUTPUT.PUT_LINE(vSqlInsert);
Et ceci me donne à l'exécution l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO DynamicViewName VALUES ('valeurstring1', , 'valeurstring2')Ce que je veux est qu'au lieu d'avoir un espace vide, j'ai la valeur NULL :ORA-00936: missing expression
ce qui fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO DynamicViewName VALUES ('valeurstring1', NULL, 'valeurstring2')
J'ai essayé de remplacer number par nvl(number , NULL) mais ça revient au même. Et évidemment si je fais nvl(number , 'NULL'), il y a l'erreur
J'espère avoir été assez claire, cela fait un moment que je planche la dessus et je n'ai rien trouvé sur internet...ORA-06502: PL/SQL: numeric or value error: character to number conversion error
Merci pour votre aide
Partager