|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
bonjour,
j'ai un petit souci concernant les accents sous oracle. tout d'abord, sous une fenetre dos, avant toute connection jai mis : set NLS_LANG=FRENCH_FRANCE.WE8PC850. donc tout fonctionne normalement, les accents s'aaffichent lorsque j'insere des donnees ou fais une requete , que ce soit sous dos ou via une interface graphque comme sql developer. Cependant, le probleme est linsertion des donnees via un fichier.sql. Les accents en sont pas mis, les caracteres avec accents ne sont pas reconnus. Auriez vous une solution ? d'avance merci. |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Quel est l'exécutable qui traite le fichier sql ? sqlplus.exe, sqlplusw.exe ou quelque chose d'autre ?
Pour vérifier la valeur de NLS_LANG dans une session SQL*Plus, utilisez: Code :
Que donne dans la session SQL qui ne fonctionne pas: Code :
SELECT * FROM nls_database_parameters; |
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : février 2007 Messages : 216 ![]() |
Bonjour,
en ce qui concerne les accents je ne connais pas grands choses, mais pour l'insertion par de : D'ACCORD il faut l'inserer de cette manière D''ACCORD. |
|
|
00
|
|
|
#4 | |||||||||||
|
Invité de passage
![]() |
Citation:
Citation:
Code :
Citation:
Code :
Code :
|
|||||||||||
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Vous ne pouvez pas modifier NLS_LANG avec une commande SQL (de plus, il ne faut jamais modifier directement une table ou une vue système).
Sous Windows, NLS_LANG peut être modifié dans le registre Windows ou comme variable d'environnement avec la commande DOS set. Voir http://fadace.developpez.com/oracle/nls/ Quelle est la version de la base Oracle ? Comme le jeu de caractères de la base est AL32UTF8, ça devrait marcher. Pouvez-vous donner un exemple de INSERT qui ne fonctionne pas avec le SELECT correspondant ? |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : juin 2003 Messages : 107 ![]() |
Tu peux changer NLS_LANGUAGE seulement au niveau de session :
ALTER SESSION SET NLS_LANGUAGE = FRENCH; Session modifiée. |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Attention: NLS_LANGUAGE est différent de NLS_LANG.
Modifier NLS_LANGUAGE ne modifie que le language utilisé par Oracle pour les messages, le nom des jours et des mois ainsi que certains critères de tri pour les données caractères: il n'est qu'un composant de NLS_LANG dont seule la partie jeu de caractères est utilisée pour convertir les caractères entre le client Oracle et la base Oracle. |
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() |
Citation:
Citation:
Quant à l'exemple, c'est juste un fichier dans lequel je fais un insert avec des valeurs contenant des accents. Sous sqlplus, j'appelle ce fichier sql : @fichier.sql puis la requete pour voir la valeur, et les caracteres avec accents ne sont pas reconnus sinon bizarrement. Que ce soit sous dos, sql developer ou sur un navigateur. |
||
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Cela peut dépendre de l'outil utilisé pour créer le fichier sql: quel est l'outil ?Peut-être les caractères sont déjà encodés en UTF8. Dans ce cas vous pouvez essayer de configurer NLS_LANG à Le fichier peut aussi être encodé en WIN1252, il faudrait aussi essayer de configurer NLS_LANG à:
Vous pouvez aussi essayer d'utiliser sqlplusw.exe car sqlplus.exe est parfois plus limité pour l'affichage que sqlplusw.exe. Même avec XE, NLS_LANG doit fonctionner comme la 10g complète:http://download-uk.oracle.com/docs/c...c.htm#BABGEEDF |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() |
toupi...ca marche pas sous dos.
soit je ferai du copier coller et non plus des @fichier.sql soit j'utilise sqldeveloper pour cette commande. en tout cas , merci d'avoir passé du temps... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com