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

VBA Access Discussion :

Lien ODBC Oracle - SQL mal interprété [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut Lien ODBC Oracle - SQL mal interprété
    Bonjour,

    suite à mes problématiques avec le driver Oracle décrits dans le fil suivant :
    http://www.developpez.net/forums/d87...s-sharperreur/
    je suis donc passé par le driver ODBC Microsoft.
    Dans un premier temps, tout marche bien, les données semblent parfaitement cohérentes.

    Puis j'ai fait une requête sur ma table liée à Oracle, pour vérifier si un champ (type Texte) était parfois non nul.
    Le code SQL de la requête ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [MaTable].CHAMP1
    FROM MaTable
    WHERE ((([MaTable].CHAMP1) Is Not Null And ([MaTable].CHAMP1)<>""));
    La requête ne me renvoie aucun enregistrement en réponse, mais si je regarde dans la table, je trouve des enregistrements avec CHAMP1 non null et non vide

    La même requête fonctionne parfaitement sur une table locale, ça ne le fait que sur une table liée...

    si je modifie la requête comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nz([MaTable].CHAMP1,"")
    FROM MaTable
    WHERE nz([MaTable].CHAMP1,"")<>"";
    ça donne des résultats cohérents.

    La question est : quand se méfier des résultats d'une requête sur une table liée par Microsoft ODBC pour Oracle, y a-t-il une règle à respecter sur le SQL ?

    Merci de m'avoir lu, et j'espère de me répondre si vous avez une idée

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    Il m'arrive de lire des infos sur une table oracle depuis access, mais avec une syntaxe sql oracle (nvl au lieu de nz...). Il me semble qu'oracle et access ne gèrent pas de la même façon la nullité d'un champ, en particulier sur oracle une string vide est aussi nulle et réciproquement (ce qui amha est bien mieux).

    Il se peut donc qu'en écrivant une requete sur une table oracle avec une syntaxe access certaines finesses échappent à l'interpréteur...mais ce n'est qu'une suggestion
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Re,

    Merci de ton intérêt

    En effet, en SQL Direct, si je fais la requête là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select champ1 from matable where champ1 <>''
    aucun résultat

    et si je fais la requête là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select champ1 from matable where champ1 =''
    aucun résultat non plus....

    le problème doit bien être au niveau de l'interprétation des Null et vides d'Oracle

  4. #4
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Re,

    enfin plus particulièrement des vides...

    Merci de ta réponse qui clarifie les choses

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

Discussions similaires

  1. [AC-2003] Lien ODBC Oracle - Lignes en #Erreur
    Par tototiti2008 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/04/2010, 14h27
  2. Lien ODBC entre SQL Server 2005 et SAGE
    Par lanjolanjo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/01/2008, 09h52
  3. Access - Lien ODBC Oracle : Probleme Primary Key
    Par mr_foxy dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2006, 14h01
  4. Lien ODBC oracle pour access
    Par christellel198 dans le forum Oracle
    Réponses: 7
    Dernier message: 29/09/2005, 11h43

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