Insérer la valeur NULL dans une colonne de type number
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 :
Code:
1 2 3 4 5 6
| vSqlInsert VARCHAR2(4000);
vSqlInsert := 'INSERT INTO ' || pDynamicViewName || ' VALUES (''' ||
variablestring1 || ''', ' ||
variablenumber || ', ''' ||
variablestring2 || ''')';
DBMS_OUTPUT.PUT_LINE(vSqlInsert); |
Ceci m'affiche
Code:
INSERT INTO DynamicViewName VALUES ('valeurstring1', , 'valeurstring2')
Et ceci me donne à l'exécution l'erreur suivante :
Citation:
ORA-00936: missing expression
Ce que je veux est qu'au lieu d'avoir un espace vide, j'ai la valeur NULL :
Code:
INSERT INTO DynamicViewName VALUES ('valeurstring1', NULL, 'valeurstring2')
ce qui fonctionne.
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
Citation:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
J'espère avoir été assez claire, cela fait un moment que je planche la dessus et je n'ai rien trouvé sur internet...
Merci pour votre aide