Bonjour ,
Voila je developpe une application web en VB.net avec la une BDD oracle,j'ai une requete d'update:
sql ="UPDATE bdd.table1 SET X=" & x1 & ",Y=" & y1 & ",Z="& z1
NB:X ,Y et Z de type decimal.
quand j'execute la requete j'ai un erreur de
ORA-01747: spécification utilisateur.table.colonne, table.colonne ou colonne non valide
alors j'ai recuperer la requete envoyer par mon envirenement de developpement (VS 2003) et j'ai comme requete:
UPDATE bdd.table1 SET X=15,5224,Y=,Z=0,2144
j'ai fait des recherches et j'ai trouver qu'il faut mettre point a la place de virgule(15,5224 =>15.5224):
j'ai execute la requete :
SELECT * from NLS_SESSION_PARAMETRES
et j'ai dans le champ:
NLS_NUMERIC_CHARACTERS la valeur ',.'
alors j'ai modifier ma requete d'update :
sql ="UPDATE bdd.table1 SET X=to_number(" & x1 & " ,'9999999999999D9999999999', 'nls_numeric_characters=.,'),Y=to_number(" & y1 & " ,'9999999999999D9999999999', 'nls_numeric_characters=.,'),Z=to_number(" & z1 & " ,'9999999999999D9999999999', 'nls_numeric_characters=.,')"
mais maintenant j'ai un autre erreur:
ORA-01722: Nombre non valide
je croit que to_number n'accepte pas une valeur NULL (Y=,),je peut utiliser la fonction nvl(string,remplace) mais moi je doit inserer un NULL rien d'autre
alors je soulicite votre aide , et peut etre qu'il y a une facon plus simple pour faire le changement entre point et virgule sans passer par cette methode.
Merci.
Partager