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 :

Oracle et insertion des données avec accents


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut Oracle et insertion des données avec accents
    Bonjour,
    j'ai un problème classique, je veux insérer des données avec des accents:
    1- quand je le fais à partir de TOAD : OK
    2- quand je livre le script et que ce dernier est lancé à partir d'une session UNIX @script.sql ça passe pas pourtant dans la base j'ai vérifié avec la requete suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM nls_database_parameters
    et j'ai bien :
    NLS_LANGUAGE FRENCH
    NLS_TERRITORY FRANCE


    donc je vois pas trop pourquoi ça marche pas en lançant un script SQL?

    Merci

  2. #2
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Regarder du coté de NLS_LANG sur le client !
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut nls sur le client
    cad?

    merci

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Sur le client, il y a aussi des paramètres qui concernent les langues et les caractères utilisés.
    Il doit y avoir adéquation entre ces paramètres et ceux de la base (notamment NLS_CHARACTERSET).
    Sous windows, du coté client, ces paramètres sont dans les registres
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG. Sous unix, je ne sais pas.

    Tu devrais trouver pas mal de choses sous GOOGLE en recherchant NLS_LANG,NLS_CHARACTERSET, etc

    Dans TOAD, tu peux voir tous les paramétres concernés (base et client) dans Database\Administer\NLS_PARAMETERS (si tu as l'option DBA)
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  5. #5
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Et tu peux aussi modifier ces paramètres dans tes scripts en faisant un ALTER SESSION
    Ex :
    ALTER SESSION SET NLS_LANGUAGE=FRENCH
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut Test pour alter session
    je viens de tester sachant que dans mon script SQL, je fais comme suivant :

    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
    18
    19
    20
    21
     
    set serveroutput on
     
    spool UPDATE_TICKLER_CODE_DEF.out
     
    WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
     
    --Test pour caractères spéciaux
     
    ALTER SESSION SET NLS_LANGUAGE=FRENCH;
     
     
    UPDATE TICKLER_CODE_DEF SET short_desc='TryAndBuy acceptée' WHERE tickler_code='ADMSOU14';
    UPDATE TICKLER_CODE_DEF SET short_desc='TryAndBuy refusée' WHERE tickler_code='ADMSOU15';
     
     
    commit ; 
     
    spool off
     
    exit
    mais ça passe pas après je retrouve dans la base :
    la valeur comme suivant :
    TryAndBuy acceptée

  7. #7
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Il s'agit d'un problème de compatiblité de jeux de caractéres
    Essaie de faire dans ta session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SET NLS_LANG=FRENCH_FRANCE.wwwwwwwww

    wwwwww = le NLS_CHARACTERSET de ta base

    Voir (entre autres)
    ftp://ftp-developpez.com/fadace/orac.../oraclenls.pdf
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  8. #8
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    MEA culpa !
    Ce n'est pas dans la session que l'on modifie NLS_LANG !

    Il s'agit d'une variable d'environement

    Faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    export NLS_LANG=FRENCH_FRANCE.xxxxxxxxx
    ou xxxxxxx est le NLS_CHARACTERSET de la base
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut variable d'environnement
    oui c'est ce que je viens de voir dans certains forums mais comment faire pour retrouver le
    wwwwww = le NLS_CHARACTERSET de ma base

  10. #10
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut

    Exactement comme pour NLS_LANGUAGE !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM nls_database_parameters
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut variable unix positionné
    là je viens de positionner la variable sur unix:
    export NLS_LANG=FRENCH_FRANCE.WE8ISO8859P1
    après j'ai lancé avec sqlplus mon script SQL
    mais ça passe toujours pas

  12. #12
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Au temps pour moi !
    Le NLS_LANG est à positionner selon le jeu de caractère utilisé dans ta session UNIX et non pas celui de la base

    Pour connaitre les paramètre de ta session UNIX, il faut faire
    et positionner NLS_LANG selon les valeurs renvoyées.
    Si tu as accés à METALINK, tout cela est expliqué dans la note 264157.1
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut echo $NLS_LANG
    quand je fais echo $NLS_LANG j'obtiens :
    _.WE8DEC

    est que je dois après positionner la variable à :
    export NLS_LANG=FRENCH_FRANCE.WE8DEC ??

    merci

  14. #14
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Comme je te l'ai dit, la valeur à mettre dans NLS_LANG dépend de locale

    Que donne $ locale ?

    Encore une fois, tout est expliqué dans la note dont je t'ai donné le numéro !
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut NLS_LANG
    quand en se connectant à la base depuis UNIX, je fais echo $NLS_LANG:

    SQL> host echo $NLS_LANG
    FRENCH_FRANCE.WE8MSWIN1252

    comme sur ma session UNIX j'ai déjà fait :

    export NLS_LANG=FRENCH_FRANCE.WE8MSWIN1252
    mais ça n'empeche qu'en insérant les données avec mon script SQL ça passe pas

  16. #16
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Pour la dernière fois !
    que donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQL> host echo $locale
    locale , c'est les paramètres UNIX de localisation.
    La valeur qu'il faut donner à NLS_LANG dépend de ces paramètres !!!!
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut locale command
    en tapant locale aussi j'ai eu :
    LANG=
    LC_CTYPE="C"
    LC_COLLATE="C"
    LC_MONETARY="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_MESSAGES="C"
    LC_ALL=UTF-8

    après j'ai fait:
    export LC_ALL=UTF-8
    export LANG=fr_FR

    locale , j'obtiens :
    LANG=fr_FR
    LC_CTYPE="C"
    LC_COLLATE="C"
    LC_MONETARY="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_MESSAGES="C"
    LC_ALL=UTF-8

    mais ça n'empech qu'en lançant mon script SQL j'ai tjrs des caractères qui passent pas

  18. #18
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Enfin !
    Sachant que tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    export LC_ALL=UTF-8
    export LANG=fr_FR
    il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ export  NLS_LANG=FRENCH_FRANCE.UTF8
    Attention , si tu utilise telnet, il faut aussi peut-être modifier la config de telnet/ssh
    (je ne fais que te transmettre ce que je lis dans la doc de METALINK 264157.1)
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

Discussions similaires

  1. Réponses: 10
    Dernier message: 01/08/2014, 18h20
  2. Réponses: 21
    Dernier message: 02/02/2012, 15h33
  3. Empêcher l'insertion des données avec un trigger
    Par hazmza dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 24/06/2010, 16h24
  4. Réponses: 2
    Dernier message: 30/06/2008, 10h52
  5. [MySQL] Insertion des données avec les caractères spéciaux
    Par rachou59650 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/05/2008, 11h16

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