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 :

Lien Oracle Access via ODBC


Sujet :

Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Lien Oracle Access via ODBC
    Bonjour à tous,

    J'ai déjà posté cette requête dans le forum Access, vu que ça le concerne aussi, mais je pense que ça trouvera plus d'experts dans ce forum. Donc je vous remets le post :

    Je travaille actuellement sur un ERP qui exploite une base de données Oracle par l'intermédiaire d'Access et de liens ODBC. Comme j'ai passé beaucoup de temps en vain à trouver une réponse à mon problème, je me résous à m'inscrire ici et à poser la question, en espérant y trouver des réponses.

    Le problème n'est pas très simple en fait : je me suis aperçu que l'ERP ne renvoyait pas les bonnes valeurs de la base de données Oracle dès lors que ces valeurs sont des nombres à virgule. Exemple : la BD Oracle contient un champ avec une valeur de TVA à 19,6 et c'est la valeur '196,00' qui est affichée par l'ERP. Je me suis tout d'abord demandé si ce n'était pas un paramétrage de Oracle qui causait tout ça mais apparemment non : lorsque j'ai affiché le contenu de la table Access liée à une des tables Oracle incriminée, je me suis aperçu qu'elle contenait des valeurs erronées . De plus, l'ERP se borne à afficher un résultat de requête SQL sur la base Access, sans traitement a posteriori, donc le souci ne vient pas du soft (je pense donc que le problème vient de l'ODBC).

    J'ai effectué aussi plusieurs tests : import des données de la table par le même lien ODBC sous Excel (test concluant, cela renvoit les bonnes données... bizarre), mise à jour des drivers ODBC Oracle (ça ne change rien), changement de drivers ODBC (jusque là j'utilisais les drivers fournis par Oracle, j'ai donc pris ceux de Microsoft : que dalle)... Bref je suis un peu dans le flou là...

    Donc ma question est : savez-vous s'il y a un quelconque problème ODBC connu entre Access et Oracle et notamment au niveau des nombres à virgule, et surtout si il y a une solution connue. Je précise tout de même aussi qu'à part ce cas précis, les liens ODBC entre les autres tables fonctionnent parfaitement.

    Voilà, merci de m'avoir lu et merci d'avance pour les potentielles futures réponses.

  2. #2
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Bonjour,
    Le problème doit être le même qu'ici :
    http://www.developpez.net/forums/sho...d.php?t=164708

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Rhoooooo... Honte à moi je n'avais pas vu le post...

    Par contre j'ai fait la modif et ça n'a pas l'air de fonctionner, Access me renvoit toujours les mauvaises valeurs. J'espère avoir tout fait bien comme il faut :
    - Aller dans Regedit, dans HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE
    - Créer une nouvelle valeur chaîne NLS_NUMERIC_CHARACTERS
    - Lui affecter la valeur .,

    Question : faut-il rebooter ou les modifications sont immédiates??

  4. #4
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Normalement je ne crois pas, mais ça vaut le coup d'essayer.
    J'avais rencontré ce problème et je crois que cette solution est bonne mais a ses limites ... mais ça remonte à loin et je ne me souviens plus lesquelles
    Les champs incriminés, dans mon cas, étaient essentiellement des montants, j'avais résolu le problème en ramenant des centimes (par exemple en attachant non plus les tables mais des vues avec les montants convertis).
    Il me semble qu'a terme le problème avait disparu lors du changement de version du pilote odbc.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Ouais, le seul problème avec l'ERP, c'est que il ne vaut mieux pas modifier le code source sinon je suis bon pour de gros futurs soucis (ma boite n'en est pas l'éditeur).
    J'ai essayé en changeant de driver ODBC (celui de crosoft), ça fonctionne très bien sur access ou excel mais dès que je lance l'appli, il n'arrive pas à se connecter (pourquoi? mystère et boule de gommes).

    Bref, je suis au fond du trou là...

    Juste un petit truc : mon driver ODBC fourni par Oracle se nomme "Oracle in OraHome92". Ca vous dit qque chose?

  6. #6
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Citation Envoyé par arkhan69
    Juste un petit truc : mon driver ODBC fourni par Oracle se nomme "Oracle in OraHome92". Ca vous dit qque chose?
    C'est juste le nom du driver, la version est accessible via l'onglet "driver" de odbcad32, mais de toutes manières cela ne me causera pas

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Oui, je me doutais bien...
    De toute façon j'ai la dernière version du driver ODBC pour ma base Oracle 9.2, mais comme j'entendais par ci par là d'autres noms de drivers Oracle, je voulais savoir si il en existait un autre.
    Meric en tout cas de tes réponses, mais tout ça ne résout pas mon schmilblick...

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Il faut ajouter, si elle n'existe pas, la clé de registre suivante :

    Emplacement : "SOFTWARE/ORACLE"
    Nom : "NLS_NUMERIC_CHARACTERS"
    Valeur : ".,"

    Cordialement.
    Bonjour à tous,

    Je me permets de remonter ce topic car une solution a été trouvée et je pense que ça pourra servir à un certain nombre d'entre vous. Je me suis inspirée de la solution proposée par Shakram dans Ce Topic :
    En fait, il faut rajouter la valeur chaîne "NLS_NUMERIC_CHARACTERS" de valeur ".," dans HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0. Ceci a pour effet d'outrepasser les caractères numériques définis par défaut par le NLS_LANG. Attention toutefois : si vous faites cela, toutes les applications installées sur le même serveur d'application et voulant se connecter à une base Oracle prendront les mêmes paramètres.

  9. #9
    Futur Membre du Club
    Profil pro
    DBA Oracle
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Une autre solution avec moins de problèmes potentiels pour les autres utilisateurs:

    mettre en place un trigger 'on-logon' dans Oracle. Détecter le nom de l'application (ici access...) et en cas de succès, faire un
    execute immediate 'alter session set NLS_NUMERIC_CHARACTERS=''?,''';

    cela résoud le problème.

    Si vous ne savez pas détecter l'application, créer un USER oracle spécifique et mettre un 'on-logon' sur ce user.

    Cordialement.

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

Discussions similaires

  1. Lecture d'une base Microsoft Access via ODBC
    Par Lucinda dans le forum Linux
    Réponses: 3
    Dernier message: 14/11/2022, 15h42
  2. importation Oracle -> Access via l'ODBC
    Par Antoun dans le forum Access
    Réponses: 4
    Dernier message: 19/02/2008, 12h03
  3. Lecture d'une base Microsoft Access via ODBC
    Par Lucinda dans le forum C
    Réponses: 2
    Dernier message: 09/05/2007, 15h50
  4. Liens Mysql Access par ODBC
    Par nykola7 dans le forum Access
    Réponses: 2
    Dernier message: 04/03/2006, 21h57
  5. Chargement des drivers access via ODBC sous Qt 3
    Par Higestromm dans le forum Bases de données
    Réponses: 10
    Dernier message: 09/01/2006, 14h30

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