IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

[Oracle 10g] Pbs de format fichiers UTF8


Sujet :

Administration Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut [Oracle 10g] Pbs de format fichiers UTF8
    Bonjour à tous,

    J'ai un souci avec les formats de fichier.

    J'ai en base les nls param. suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    NLS_LANGUAGE              AMERICAN
    NLS_TERRITORY             AMERICA
    NLS_CURRENCY              $
    NLS_ISO_CURRENCY          AMERICA
    NLS_NUMERIC_CHARACTERS    .,
    NLS_CALENDAR              GREGORIAN
    NLS_DATE_FORMAT           DD-MON-RR
    NLS_DATE_LANGUAGE         AMERICAN
    NLS_SORT                  BINARY
    NLS_TIME_FORMAT           HH.MI.SSXFF AM
    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
    Dans le client j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AMERICAN_AMERICA.AL32UTF8
    Auparavant nous faisions fonctionner l'appli sous windows :
    - procédure stockée qui lit la 1ère ligne du fichier
    - sqlloader qui charge le fichier.

    Le fichier est au format utf8 (c-a-d que quand on l'ouvre ou le sauvegarde sous notepad il est au format utf8) .

    Ca fonctionne !!!!

    Nous avons placé ce fichier sur un répertoire Unix et à présent ça ne fonctionne plus :
    - la procédure stockée n'arrive plus à lire correctement le fichier (il n'y a pas de plantage mais les traitements de chaînes de car. ne sont pas corrects) , le fichier est ouvert par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	fic UTL_FILE.FILE_TYPE;
    	codRet varchar2(2) := 'OK';
     begin
     
    	fic := UTL_FILE.FOPEN('INDIR', pNomFichier, 'r');
    et est lu ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	UTL_FILE.GET_LINE(fic, tampon, 256);
    Y a-t-il un moyen (mode d'ouverture) de préciser à l'ouverture (fopen) que le fichier est au format utf8 ?

    Sinon voyez-vous un moyen pour que les traitements s'effectuent correctement ?

    (le sqlloader fonctionne correctement uniquement avec des fichiers au format utf8).


    Merci d'avance.

    Cordialement.

  2. #2
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    quel est le CS de la base ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    SQL> SELECT * FROM sys.props$ WHERE name LIKE 'NLS%CHARACTERSET%';

    NAME VALUE$ COMMENT$
    NLS_NCHAR_CHARACTERSET AL16UTF16 NCHAR Character set
    NLS_CHARACTERSET AL32UTF8 Character set


    Voila.

    Le problème vient, en fait, du bom (byte order mark) little endian (on est sous Solaris 10) en début de chaîne de caractère qui fausse toutes les manips de chaines de car. Il faut donc le supprimer avant.

    Merci de votre aide.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Oracle 10g - spool dans un fichier
    Par E.Dupre dans le forum SQL
    Réponses: 4
    Dernier message: 04/11/2010, 15h16
  2. Oracle 10g: Ecrire dans un fichier
    Par mamid1706 dans le forum PL/SQL
    Réponses: 13
    Dernier message: 10/04/2009, 15h29
  3. [Oracle 10g] Lecture d'un fichier en PL/SQL
    Par sebvita dans le forum PL/SQL
    Réponses: 7
    Dernier message: 07/08/2007, 17h05
  4. format de fichier UTF8 et oracle
    Par ablayes dans le forum Oracle
    Réponses: 1
    Dernier message: 01/07/2006, 13h43
  5. [Oracle 10g] Format de DATE
    Par mjolymelot dans le forum Oracle
    Réponses: 6
    Dernier message: 26/06/2006, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo