Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/02/2007, 15h34   #1
Invité de passage
 
Inscription : septembre 2004
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5
Points : 1
Points : 1
Envoyer un message via MSN à millefeintes
Par défaut accents et fichier sql

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.
millefeintes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 15h50   #2
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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 :
1
2
SQL> @[.%NLS_LANG%]
SP2-0310: unable TO open file "[.FRENCH_FRANCE.WE8MSWIN1252]"
(le message d'erreur est la valeur de NLS_LANG)

Que donne dans la session SQL qui ne fonctionne pas:
Code :
SELECT * FROM nls_database_parameters;
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 16h21   #3
Membre habitué
 
Inscription : février 2007
Messages : 216
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : février 2007
Messages : 216
Points : 115
Points : 115
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.
elharet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 17h08   #4
Invité de passage
 
Inscription : septembre 2004
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5
Points : 1
Points : 1
Envoyer un message via MSN à millefeintes
Citation:
Envoyé par pifor
Quel est l'exécutable qui traite le fichier sql ? sqlplus.exe, sqlplusw.exe ou quelque chose d'autre ?
lexecutable est sqlplus.exe.

Citation:
Envoyé par pifor
Pour vérifier la valeur de NLS_LANG dans une session SQL*Plus, utilisez:
Code :
1
2
SQL> @[.%NLS_LANG%]
SP2-0310: unable TO open file "[.FRENCH_FRANCE.WE8MSWIN1252]"
(le message d'erreur est la valeur de NLS_LANG)
Apres verification, j'obtiens :
Code :
1
2
SQL> @[.%NLS_LANG%]
SP2-0310: impossible d'ouvrir le fichier "[.FRENCH_FRANCE.WE8PC850]"
Citation:
Envoyé par pifor
Que donne dans la session SQL qui ne fonctionne pas:
Code :
SELECT * FROM nls_database_parameters;
Cela donne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
SQL> SELECT * FROM nls_database_parameters;
 
PARAMETER                 VALUE
------------------------- -------------------------
NLS_LANGUAGE              AMERICAN
NLS_TERRITORY             AMERICA
NLS_CURRENCY              $
NLS_ISO_CURRENCY          AMERICA
NLS_NUMERIC_CHARACTERS    .,
NLS_CHARACTERSET          AL32UTF8
NLS_CALENDAR              GREGORIAN
NLS_DATE_FORMAT           DD-MON-RR
NLS_DATE_LANGUAGE         AMERICAN
NLS_SORT                  BINARY
NLS_TIME_FORMAT           HH.MI.SSXFF AM
 
PARAMETER                 VALUE
------------------------- -------------------------
NLS_TIMESTAMP_FORMAT      DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT        HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT   DD-MON-RR HH.MI.SSXFF AM
                          TZR
 
NLS_DUAL_CURRENCY         $
NLS_COMP                  BINARY
NLS_LENGTH_SEMANTICS      BYTE
NLS_NCHAR_CONV_EXCP       FALSE
NLS_NCHAR_CHARACTERSET    AL16UTF16
NLS_RDBMS_VERSION         10.2.0.1.0
 
20 ligne(s) sélectionnée(s).
J'avais essayé de modifier le NLS_LANG mais je n'y arrive pas. Je pensais faire un update mais privilèges insuffisants même en tant que system. En tant que sys,
Code :
1
2
3
4
5
6
7
8
 
SQL> UPDATE nls_database_parameters
  2  SET value='FRENCH'
  3  WHERE parameter='NLS_LANGUAGE';
SET value='FRENCH'
    *
ERREUR à la ligne 2 :
ORA-01733: les colonnes virtuelles ne sont pas autorisées ici
millefeintes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 17h20   #5
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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 ?
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 17h21   #6
Membre habitué
 
Inscription : juin 2003
Messages : 107
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 107
Points : 101
Points : 101
Tu peux changer NLS_LANGUAGE seulement au niveau de session :

ALTER SESSION
SET NLS_LANGUAGE = FRENCH;

Session modifiée.
lsaid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 17h25   #7
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 17h29   #8
Invité de passage
 
Inscription : septembre 2004
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5
Points : 1
Points : 1
Envoyer un message via MSN à millefeintes
Citation:
Envoyé par pifor
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/
C'est ce que j'ai fait et dit plus dans mon premier post avec la commande dos.

Citation:
Envoyé par pifor
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 ?
Je possède sur ma machine Oracle 10g XE.
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.
millefeintes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 17h41   #9
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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 à:
Code :
FRENCH_FRANCE.WE8MSINW1252
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
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 17h58   #10
Invité de passage
 
Inscription : septembre 2004
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5
Points : 1
Points : 1
Envoyer un message via MSN à millefeintes
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...
millefeintes est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h26.


 
 
 
 
Partenaires

Hébergement Web