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

R Discussion :

probleme encodage sur une base oracle


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut probleme encodage sur une base oracle
    Bonjour,

    Je travaille sur MobaXterm qui me permet d'accéder à un serveur R sur linux. Mon poste est sous windows.
    Je réalise des requêtes sur une base oracle pour créer des rapports... et évidemment j'ai des problèmes d'encodage.

    J'ai essayé de mettre les données en utf8 dès la connexion ora <- dbDriver("Oracle",unicode_as_utf8 = TRUE), avec encoding sur la variable que je récupère mais rien n'y change, je n'ai toujours pas d'accent et mes apostrophes apparaisent avec le ?..

    Et donc je me tourne vers vous.. :-) Si quelqu'un a déjà rencontré ce problème et a une solution, ce serait cool.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Par défaut
    Bonjour,
    D'emblée, je signale mon incapacité d'essayer de reproduire quoi que ce soit, n'ayant pas accès à un serveur Oracle.
    Mais en survolant les manuels des paquets DBI et Oracle, il semble que le souci ne viendrait pas de R, il faudrait plutôt regarder du côté du SGBD et des différents systèmes d'exploitation se trouvant dans l'environnement à votre disposition. Qu'obtenez-vous avec ce qui suit ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ora <- dbDriver("Oracle", unicode_as_utf8 = TRUE)
    sessionInfo()
    Sys.info()[c("sysname", "release", "machine")]
    localeToCharset()
    capabilities()
    extSoftVersion()

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut
    bonjour ,

    merci de votre aide. Je copie colle ce que j'ai obtenu avec vos requêtes

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    > ora <- dbDriver("Oracle", unicode_as_utf8 = TRUE)
    > sessionInfo()
    R version 3.2.2 (2015-08-14)
    Platform: x86_64-pc-linux-gnu (64-bit)
    Running under: Ubuntu 14.04.3 LTS
     
    locale:
     [1] LC_CTYPE=fr_FR.UTF-8          LC_NUMERIC=C                  LC_TIME=fr_FR.UTF-8           LC_COLLATE=fr_FR.UTF-8        LC_MONETARY=fr_FR.UTF-8      
     [6] LC_MESSAGES=fr_FR.UTF-8       LC_PAPER=fr_FR.UTF-8          LC_NAME=fr_FR.UTF-8           LC_ADDRESS=fr_FR.UTF-8        LC_TELEPHONE=fr_FR.UTF-8     
    [11] LC_MEASUREMENT=fr_FR.UTF-8    LC_IDENTIFICATION=fr_FR.UTF-8
     
    attached base packages:
    [1] compiler  stats     graphics  grDevices utils     datasets  methods   base     
     
    other attached packages:
     [1] classInt_0.1-23     RColorBrewer_1.1-2  chron_2.3-47        OpenStreetMap_0.3.2 RJSONIO_1.3-0       rgeos_0.3-15        PBSmapping_2.69.76  reshape_0.8.5      
     [9] data.table_1.9.6    xlsx_0.5.7          xlsxjars_0.6.1      rJava_0.9-7         memisc_0.97         MASS_7.3-44         lattice_0.20-33     XML_3.98-1.3       
    [17] RCurl_1.95-4.7      bitops_1.0-6        stringr_1.0.0       splancs_2.01-38     maptools_0.8-37     rgdal_1.1-3         sp_1.2-1            rmarkdown_0.8.1    
    [25] markdown_0.7.7      knitr_1.12.3        ROracle_1.2-1       DBI_0.3.1           R.utils_2.2.0       R.oo_1.19.0         R.methodsS3_1.7.0  
     
    loaded via a namespace (and not attached):
     [1] Rcpp_0.12.3      highr_0.5.1      formatR_1.2.1    plyr_1.8.3       class_7.3-14     tools_3.2.2      digest_0.6.9     evaluate_0.8     gtable_0.1.2     yaml_2.1.13     
    [11] e1071_1.6-7      raster_2.5-2     grid_3.2.2       foreign_0.8-66   ggplot2_2.0.0    magrittr_1.5     scales_0.3.0     htmltools_0.3    colorspace_1.2-6 stringi_1.0-1   
    [21] munsell_0.4.3   
    > Sys.info()[c("sysname", "release", "machine")]
                sysname             release             machine 
                "Linux" "3.19.0-28-generic"            "x86_64" 
    > localeToCharset()
    [1] "UTF-8"     "ISO8859-1"
    > capabilities()
    No protocol specified
           jpeg         png        tiff       tcltk         X11        aqua    http/ftp     sockets      libxml        fifo      cledit       iconv         NLS     profmem 
           TRUE        TRUE        TRUE        TRUE       FALSE       FALSE        TRUE        TRUE        TRUE        TRUE        TRUE        TRUE        TRUE        TRUE 
          cairo         ICU long.double     libcurl 
           TRUE       FALSE        TRUE        TRUE 
    > extSoftVersion()
                         zlib                     bzlib                        xz                      PCRE                       ICU                       TRE 
                      "1.2.8"      "1.0.6, 6-Sept-2010"              "5.1.0alpha"         "8.31 2012-07-06"                        "" "TRE 0.8.0 R_fixes (BSD)" 
                        iconv 
                 "glibc 2.19"

  4. #4
    Membre expérimenté
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Par défaut
    Bonjour,
    Comme le montre les sorties ci-dessus, notamment celle de sessionInfo(), sur votre machine, les paramètres de régionalisation sont en UTF-8 et a priori, il ne devrait alors pas y avoir de souci avec les accents avec R en soi. Ce qui est un peu étrange est l'absence de l'ICU sur la machine même s'il manque des éléments pour supposer que le problème viendrait de là ; dans tous les cas, assurez-vous quand même de la présence des paquets Ubuntu libicu52 et libicu-dev, ça pourrait s'avérer utile.
    Cela dit, veuillez aussi donner un exemple des instructions qui sont à l'origine du problème : est-ce l'affichage dans R qui est incorrect ou cela concerne les rapports créés à l'aide de R puis exportés dans des fichiers externes ? Comment générez-vous ces rapports ? Quelque chose du genre cat("à ç") s'affiche-t-il correctement dans la console R ? etc. Et que donne la commande système (terminal Ubuntu) : locale

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut
    j'ai vérifié la présence des deux paquets libicu52 et libicu-dev et ils sont présents mais nécessitaient une mise à jour et l'ajout de icu-devtools. ce que j'ai fait.

    Et que donne la commande système (terminal Ubuntu) : locale
    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
     
     
    administrateur@Serveur-FME-R:~$ locale
    LANG=fr_FR.UTF-8
    LANGUAGE=
    LC_CTYPE="fr_FR.UTF-8"
    LC_NUMERIC="fr_FR.UTF-8"
    LC_TIME="fr_FR.UTF-8"
    LC_COLLATE="fr_FR.UTF-8"
    LC_MONETARY="fr_FR.UTF-8"
    LC_MESSAGES="fr_FR.UTF-8"
    LC_PAPER="fr_FR.UTF-8"
    LC_NAME="fr_FR.UTF-8"
    LC_ADDRESS="fr_FR.UTF-8"
    LC_TELEPHONE="fr_FR.UTF-8"
    LC_MEASUREMENT="fr_FR.UTF-8"
    LC_IDENTIFICATION="fr_FR.UTF-8"
    LC_ALL=
    est-ce l'affichage dans R qui est incorrect ou cela concerne les rapports créés à l'aide de R
    J'ai essayé les deux et même problème...

    Quelque chose du genre cat("à ç")
    Affiche bien à ç

    j'ai un collègue qui a le problème inverse.. c'est à dire que à la lecture tt se passe bien mais à l'écriture dans une base oracle à partir de R, me^me problème d'encodage, par contre il est sur linux..

  6. #6
    Membre expérimenté
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Par défaut
    Citation Envoyé par bernards111 Voir le message
    [...] libicu52 et libicu-dev [...] nécessitaient une mise à jour [...]
    En parlant des mises à jour, R en a également besoin.
    3.2.2 2015-08-14T07:13:18.272871Z : version installée sur votre machine (ainsi que sa date de sortie)
    3.2.3 2015-12-10T08:13:08.415370Z : dernière version en date
    Citation Envoyé par bernards111 Voir le message
    [...] j'ai un collègue qui a le problème inverse [...] par contre il est sur linux.
    Il y a une petite confusion ici : vous aussi êtes sur Linux, au moins du point de vue de R ; le message initial dit bien qu'à la base, vous avez un Windows qui utilise d'autres outils pour accéder à des machines Linux, mais au moment où R est utilisé, il ne voit que Linux. Peut-être vouliez-vous dire qu'il y a, pour le SGBD Oracle, une instance installée sur Windows (la vôtre) et une autre installée sur Linux (celle de votre collègue).

    Comme le montre la locale, vous avez de l'Unicode dans votre session Ubuntu, donc le problème ne vient ni de l'OS ni de R (cfr. le message précédent et les sorties obtenues avec cat("à ç")). La seule piste qui reste est de vérifier ce qui se passe lors des transferts des données entre R+l'OS et le SGBD.

    Encore une fois, pourriez-vous donner un exemple concret de la partie problématique de votre code ? Par exemple, écrire deux requêtes simples, une de lecture dans une BD et une autre d'écriture, les deux portant sur des données ayant des caractères accentués et montrer comment vous vous y prenez pour les exécuter à partir de R.

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

Discussions similaires

  1. Problèmes de performances sur une base oracle 10g
    Par ORAMEL dans le forum Oracle
    Réponses: 3
    Dernier message: 11/09/2007, 09h11
  2. Réponses: 2
    Dernier message: 03/09/2007, 14h41
  3. Travailler sur une base Oracle
    Par prolog18 dans le forum Outils
    Réponses: 1
    Dernier message: 26/07/2007, 12h13
  4. comment on peut travailler sur une base oracle
    Par Bourak dans le forum Oracle
    Réponses: 1
    Dernier message: 18/06/2007, 18h16
  5. Connection de BO v6.1.b sur une base Oracle 9
    Par HBA_BO dans le forum Administration-Migration
    Réponses: 12
    Dernier message: 09/11/2006, 17h34

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