1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    janvier 2011
    Messages
    922
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : janvier 2011
    Messages : 922
    Points : 518
    Points
    518

    Par défaut Jointure avec caractères spéciaux

    Bonjour,

    Je dispose d'un serveur oracle sur le quel je peux créer des tables via PL/SQL.

    Depuis PL/SQL j'ai créer des petites tables de 5 à 10 lignes avec 3 colonnes (un id , un champ libellé , un champ commentaire). Via PL/SQL les tables créés dans le serveur oracle disposent pour centaines de lignes avec une valeur accentuér .

    Exemple :
    id;libelle;commentaire
    00;éric;personne test1
    01;paul;personne test2
    02;andré;personne test3
    Via mon interface PL/SQL je vois "éric" . La même table via SAS je vois "eric" . Quand je requête j'ai une résultat sur le prénom "eric" mais pas avec "éric" ...

    C'est très étrange car j'arrive pourtant à bien garder des mots accentués si j'importe de la data depuis Excel ou CSV .

    Merci de m'aiguiller pour palier a ce problème

  2. #2
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    mai 2011
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2011
    Messages : 652
    Points : 1 523
    Points
    1 523

    Par défaut

    Bonjour,

    en cas de doute concernant la présence de caractères spéciaux l'analyse du contenu hexadecimal des chaînes de caractères via les formats $hexw. permet bien souvent d'y voir beaucoup plus clair.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    janvier 2011
    Messages
    922
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : janvier 2011
    Messages : 922
    Points : 518
    Points
    518

    Par défaut

    Bonjour,

    Le problème a été identifié .

    Il vient d'une problématique "NLS_LANG" .

    1) l'univers de données concerné est stocké dans Oracle avec des droits de lectures et d'écritures.
    2) les utilisateurs créent et suppriment des tables dans la base de données Oracle depuis 2 applications exclusives : PL/SQL et SAS.

    Résultat les paramètres de définitions de langues ne sont pas les mêmes que dans Oracle.

    Pour contourner le problème une seul solution :

    * normaliser la data sans accent avec tout en minuscule / majuscule.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    janvier 2011
    Messages
    922
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : janvier 2011
    Messages : 922
    Points : 518
    Points
    518

    Par défaut

    Bonjour,

    Une piste de réflexion également à explorer est celle de l'encodage de votre base de données.

    Pour faite un seul programme libname et lancez cette requête :

    Code SAS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    proc options option=encoding; 
     
    run ;

    Contrôlez l'encodage de l'univers de données en question via votre journal . Si c'est un UTF8 , LATIN9 ...

  5. #5
    Membre éprouvé
    Avatar de Stackware
    Homme Profil pro
    ArchiDuc de la Sasserie
    Inscrit en
    juillet 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ArchiDuc de la Sasserie
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2013
    Messages : 378
    Points : 938
    Points
    938
    Billets dans le blog
    4

    Par défaut

    Salut,
    Si les gens accèdent au travers de Guide par exemple, il suffit de paramétrer l'accès à Oracle du serveur SAS correctement.
    Sur le compute tier, le client Oracle doit être paramétré en fr_FR, par exemple, et là les données apparaitront correctement.
    Ça se fait soit dans l'installation SAS directement, soit dans le profile du user qui lance le serveur (export NLS_LANG dans le .profile ou le .bash_profile).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    janvier 2011
    Messages
    922
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : janvier 2011
    Messages : 922
    Points : 518
    Points
    518

    Par défaut

    Bonjour,

    J'ai eu un retour de SAS a ce sujet :

    > pour un environnement de "production" avec des tables en "read only" le paramétrage de l'encodage et du transcodage des accents se fait dans le serveur SAS. La pas de soucis il est possible de laisser les accents.

    > pour un environnement de "travail" avec des tables en "read write" le paramétrage de l'encodage est sujet à changement du fait que l'utilisateur puisse se retrouver a créer du latin9 au lieu de l'utf8, ou encore a triturer des fichiers . Dans ce cas si l'utilisateur ne sait pas d'avance que son univers est dans un encodage différent et qu'il utilise un autre avec ces requêtes.

    Le conseil de SAS > bannir les caractères spéciaux (é,à,è ... ) et rester sur du A-Z , a-z , 0-9 . Penser également à "normaliser" ces données avec de la majuscule ou de la minuscule .

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

Discussions similaires

  1. [DOM] Erreur parser fichier xml avec caractère spéciaux
    Par turcotm dans le forum XML
    Réponses: 4
    Dernier message: 19/06/2006, 09h01
  2. Problèmes avec caractères spéciaux
    Par brokengillou dans le forum PHP & MySQL
    Réponses: 1
    Dernier message: 27/04/2006, 17h02
  3. recupérer GET avec caractères spéciaux
    Par masseur dans le forum Fonctions
    Réponses: 11
    Dernier message: 03/01/2006, 11h37
  4. Réponses: 9
    Dernier message: 25/12/2005, 01h40
  5. Réponses: 3
    Dernier message: 11/10/2004, 17h26

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