|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : février 2011 Messages : 41 ![]() |
Bonjour à tous,
J'ai un soucis dans une de mes scripts de chargement de données. J'ai un fichier plat qui est composé de données devant être insérées dans une table paie. Malheureusement dans ce fichier mes montants sont renseignés avec un . comme séparateur décimal et non une virgule, et j'ai donc une erreur-1722. Après quelques recherches j'ai cru comprendre que le problème venait de nls_numeric_characters. Lorsque je fais un select * from nls_database_parameters; J'ai bien ., dans nls_numeric_characters Je ne l'avais pas quand je faisais un select * from nls_session_parameters Je me suis dis chouette le problème doit certainement venir de là, mais après changement j'ai toujours un soucis. Je me suis ensuite dis, bon il se peut que ce soit le système (unix) sur lequel je lance mon script qui pose soucis, alors j'ai essayé de mettre une variable d'environnement en faisant un set NLS_NUMERIC_CHARACTERS=., Maintenant, quand je fais un set je vois bien ma ligne qui apparait, en revanche si je fais un echo $NLS_NUMERIC_CHARACTERS je ne vois aucune valeur qui s'affiche. Je me suis dis, bon c'est pas grave je vais passer par le fichier directement, et dans mon script j'ai donc écrit ça : Code :
|
||
|
|
00
|
|
|
#2 | ||||||||||||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Peut être un soucis avec vos données ?
Table t_nls Code :
Code :
Variable NLS_NUMERIC_CHARACTERS Fichier script t_nls Code :
Code :
Code :
Code :
|
||||||||||||
|
|
10
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 41 ![]() |
Bonjour mnitu et merci de ton retour !
Finalement, j'ai opté pour une autre solution, j'ai simplement utilisé la fonction to_number dans mon ctl et ça fonctionne correctement. Par contre, je suis en train d'appliquer la même chose pour mes dates, mais j'ai un soucis, lorsque j'ai des dates, ça s'insère correctement, par contre, mes lignes sans date me rejète une erreur. Je vais chercher afin de trouver une solution et si je la trouve je la mettrais ici ! Encore merci, NarbOni |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 41 ![]() |
Finalement, j'ai un autre soucis et plutot que d'ouvrir plusieurs topics je le poste ici.
Avec ma fonction to_number(:monchamp,999999999.99,nls_numeric_characters='.,'); j'ai tout de même un soucis, c'est que je n'arrive pas à forcer l'affichage de la décimale de mes nombres entiers. Exemple : si j'ai 55.00 dans mon fichier plat, lors de l'affichage il va me mettre 55. Je le vois en faisant un simple test select 55.00 from dual; Savez-vous ou est ce qu'on peut paramétrer ce "forçage" d'affichage ? Merci, NarbOni |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com