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

Oracle Discussion :

Gestion des caractères en PL/SQL


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 20
    Points
    20
    Par défaut Gestion des caractères en PL/SQL
    Bonjour,
    J'ai un soucis d'encodage que je cherche la solution pendant un moment.
    j'ai des caractères accentués dans ma procédure stockée que je lance sur oracle 10g pour faire des INSERT dans la base.
    Quand s’exécute ma procédure dans sqldevelopper/Toad tous fonctionnes correctement. mais si je l’exécute en me connectant
    sur la base de donnée via putty avec la commande "sqlplus" l’exécution fonctionne bien mais dans ma base de données les caractères accentués sont remplacé par des "?".

    Merci d'avance

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Via putty tu te connectes à un serveur (probablement linux ou unix) avant de te connecter à la base.
    Il faut probablement configurer le paramêtre NLS_LANG.

    Regarde : Evitez les erreurs de conversion grâce aux NLS

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Oui je me connecte à un serveur UNIX.
    j'ai exécute cette requête pour connaitre "NLS_CHARACTERSET"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT * FROM nls_database_parameters
    WHERE parameter='NLS_CHARACTERSET'
     
    PARAMETER                      VALUE                                    
    ------------------------------ ---------------------------------------- 
    NLS_CHARACTERSET               WE8MSWIN1252
    je vais explorer ton lien et voir ce que je peux obtenir. Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Via putty tu te connectes à un serveur (probablement linux ou unix) avant de te connecter à la base.
    Il faut probablement configurer le paramêtre NLS_LANG.

    Regarde : Evitez les erreurs de conversion grâce aux NLS
    j'ai toujours le même problème.

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Qu'as tu fait ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Qu'as tu fait ?
    j'ai modifier le NLS_LANG en faisant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    export NLS_LANG=AMERICAN_AMERICA.WE8ISO8851P1
    et quand je veux me connter j'ai cette erreure là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERROR:
    ORA-12705: Cannot access NLS data files or invalid environment specified
    pour info je suis sur un serveur solarise

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    C'est bon ça marche.
    j'avais pas mis la bonne valeur à NLS_LANG

    correction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT * FROM nls_database_parameters
    WHERE parameter='NLS_CHARACTERSET'
    
    PARAMETER                      VALUE                                    
    ------------------------------ ---------------------------------------- 
    NLS_CHARACTERSET               WE8MSWIN1252
    puis faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    export NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252
    comme on le souligne dans le tuto il serait judicieux de mettre "export du NLS_LANG" dans le .profile si vous êtes sous unix.

    Merci pour votre aide

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Je pense que c'est un raccourci, mais tant mieux si ça marche :

    Common NLS_LANG Myths
    Setting the NLS_LANG to the character set of the database MAY be correct but IS often not correct.
    DO NOT assume that NLS_LANG needs to be the same as the database character set. THIS IS OFTEN NOT TRUE.
    How to setup the NLS_LANG Properly for UNIX
    On Solaris, look in /usr/lib/locale
    Par contre ça semble bizarre d'avoir un NLS_CHARACTERSET à WE8MSWIN1252 (windows) sur un serveur solaris, mais bon j'y connais pas grand chose...

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

Discussions similaires

  1. [MySQL] Gestion des caractères spéciaux dans un update
    Par olivier94 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/03/2007, 18h13
  2. Gestion des caractères spéciaux (micro)
    Par MiJack dans le forum Delphi
    Réponses: 7
    Dernier message: 19/01/2007, 23h41
  3. Réponses: 1
    Dernier message: 17/10/2006, 05h39
  4. Gestion des caractères spéciaux
    Par claralavraie dans le forum Oracle
    Réponses: 1
    Dernier message: 22/06/2006, 15h41
  5. [EXCEPTION] Gestion des Exceptions dans PL/SQL
    Par Titouf dans le forum PL/SQL
    Réponses: 4
    Dernier message: 08/02/2006, 01h46

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