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

SQL Oracle Discussion :

erreur 00905 sur une requête provenant d'access


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut erreur 00905 sur une requête provenant d'access
    Bonjour,

    On m'a fournit une requête que je dois retravailler pour la rendre plus complète.
    Le problème est que cette requête a d'abord été créée sous ACCESS (qui communique avec la base Oracle 9 via ODBC).

    Lorsque j'essaie de l'éxecuter sous SQLPlus, j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERREUR à la ligne 2 :
    ORA-00905: Mot-clé absent
    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SOCIETETH.CODE, CLIENTSOCIETE.CODESOCIETE, CLIENT.CODE, ADRESSETIERS.RAISONSOCIALE1, CLIENT.SIRET, CODEAPENAF.CODE, CLIENT.TVAID, CLIENTSOCIETE.BANQUEDOMICILIATION, CLIENTSOCIETE.BANQUECOMPTE, CLIENTSOCIETE.BANQUEGUICHET, CLIENTSOCIETE.BANQUEETAB, CLIENTSOCIETE.BANQUECLE, DEVISE.CODEISO, ADRESSETIERS.RAISONSOCIALE2, ADRESSETIERS.ADRESSE1, ADRESSETIERS.ADRESSE2, ADRESSETIERS.CODEPOSTAL, ADRESSETIERS.VILLE AS VILLE_CLT, PAYS.LIBELLE, CLIENT.TELEPHONE, CLIENT.TELECOPIE, CLIENT.INTERNETSITE, CLIENT.EMAIL, ACTIVITE.LIBELLE, CATEGORIECLIENT.LIBELLE, INTERLOCUTEURCLIENT.NOM, INTERLOCUTEURCLIENT.PRENOM, CLIENTSOCIETE.CREATIONDATE, CLIENTSOCIETE.MODIFDATESOCIETE, LANGUE.CODE, CONDITIONPAIEMENT.LIBELLE, MODEREGLEMENT.LIBELLE, CLIENTSOCIETE.ENCOURSMAXIMUMAUTORISE, ADRESSETIERS_1.VILLE, SOCIETETH.CODE || CLIENT.CODE AS CLECLIENT
    FROM ((((((((((((CLIENTSOCIETE INNER JOIN CLIENT ON CLIENTSOCIETE.CLIENT = CLIENT.PK_CLIENT) INNER JOIN SOCIETETH ON CLIENTSOCIETE.SOCIETETH = SOCIETETH.PK_SOCIETETH) INNER JOIN ADRESSETIERS ON CLIENT.ADRESSERECH = ADRESSETIERS.PK_ADRESSETIERS) LEFT JOIN CODEAPENAF ON CLIENT.CODEAPENAF = CODEAPENAF.PK_CODEAPENAF) INNER JOIN DEVISE ON CLIENT.DEVISE = DEVISE.PK_DEVISE) INNER JOIN PAYS ON ADRESSETIERS.PAYS = PAYS.PK_PAYS) LEFT JOIN ACTIVITE ON CLIENTSOCIETE.ACTIVITE = ACTIVITE.PK_ACTIVITE) LEFT JOIN CATEGORIECLIENT ON CLIENTSOCIETE.CATEGORIE = CATEGORIECLIENT.PK_CATEGORIECLIENT) LEFT JOIN INTERLOCUTEURCLIENT ON CLIENTSOCIETE.COMMERCIAL = INTERLOCUTEURCLIENT.PK_INTERLOCUTEURCLIENT) LEFT JOIN LANGUE ON CLIENT.LANGUE = LANGUE.PK_LANGUE) INNER JOIN CONDITIONPAIEMENT ON CLIENTSOCIETE.CONDITIONPAIEMENT = CONDITIONPAIEMENT.PK_CONDITIONPAIEMENT) INNER JOIN MODEREGLEMENT ON CLIENTSOCIETE.MODEREGLEMENT = MODEREGLEMENT.PK_MODEREGLEMENT) LEFT JOIN ADRESSETIERS AS ADRESSETIERS_1 ON INTERLOCUTEURCLIENT.ADRESSE = ADRESSETIERS_1.PK_ADRESSETIERS
    WHERE (((SOCIETETH.CODE)="FOIFR") AND ((CLIENT.TYPE)=1) AND ((CLIENT.DESACTIVE)=0));
    A priori, le problème viens du fait que je fasse 2 jointures sur la ADRESSETIERS. J'ai vraiment besoin de ces jointures et la syntaxe me semble correct, pourtant sa ne passe pas.
    Auriez vous une idée ?

    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Par défaut
    essaye en supprimant le "AS" pour aliaser la table "ADRESSETIERS as ADRESSETIERS_1":

    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
    SELECT SOCIETETH.CODE, CLIENTSOCIETE.CODESOCIETE, CLIENT.CODE, ADRESSETIERS.RAISONSOCIALE1, CLIENT.SIRET, CODEAPENAF.CODE, CLIENT.TVAID, CLIENTSOCIETE.BANQUEDOMICILIATION, CLIENTSOCIETE.BANQUECOMPTE, CLIENTSOCIETE.BANQUEGUICHET, CLIENTSOCIETE.BANQUEETAB, CLIENTSOCIETE.BANQUECLE, DEVISE.CODEISO, ADRESSETIERS.RAISONSOCIALE2, ADRESSETIERS.ADRESSE1, ADRESSETIERS.ADRESSE2, ADRESSETIERS.CODEPOSTAL, ADRESSETIERS.VILLE AS VILLE_CLT, PAYS.LIBELLE, CLIENT.TELEPHONE, CLIENT.TELECOPIE, CLIENT.INTERNETSITE, CLIENT.EMAIL, ACTIVITE.LIBELLE, CATEGORIECLIENT.LIBELLE, INTERLOCUTEURCLIENT.NOM, INTERLOCUTEURCLIENT.PRENOM, CLIENTSOCIETE.CREATIONDATE, CLIENTSOCIETE.MODIFDATESOCIETE, LANGUE.CODE, CONDITIONPAIEMENT.LIBELLE, MODEREGLEMENT.LIBELLE, CLIENTSOCIETE.ENCOURSMAXIMUMAUTORISE, ADRESSETIERS_1.VILLE, SOCIETETH.CODE || CLIENT.CODE AS CLECLIENT
    FROM ((((((((((((
    CLIENTSOCIETE INNER JOIN CLIENT ON CLIENTSOCIETE.CLIENT = CLIENT.PK_CLIENT) 
    INNER JOIN SOCIETETH ON CLIENTSOCIETE.SOCIETETH = SOCIETETH.PK_SOCIETETH) 
    INNER JOIN ADRESSETIERS ON CLIENT.ADRESSERECH = ADRESSETIERS.PK_ADRESSETIERS) 
    LEFT JOIN CODEAPENAF ON CLIENT.CODEAPENAF = CODEAPENAF.PK_CODEAPENAF) 
    INNER JOIN DEVISE ON CLIENT.DEVISE = DEVISE.PK_DEVISE) 
    INNER JOIN PAYS ON ADRESSETIERS.PAYS = PAYS.PK_PAYS) 
    LEFT JOIN ACTIVITE ON CLIENTSOCIETE.ACTIVITE = ACTIVITE.PK_ACTIVITE)
    LEFT JOIN CATEGORIECLIENT ON CLIENTSOCIETE.CATEGORIE = CATEGORIECLIENT.PK_CATEGORIECLIENT) 
    LEFT JOIN INTERLOCUTEURCLIENT ON CLIENTSOCIETE.COMMERCIAL = INTERLOCUTEURCLIENT.PK_INTERLOCUTEURCLIENT) 
    LEFT JOIN LANGUE ON CLIENT.LANGUE = LANGUE.PK_LANGUE) 
    INNER JOIN CONDITIONPAIEMENT ON CLIENTSOCIETE.CONDITIONPAIEMENT = CONDITIONPAIEMENT.PK_CONDITIONPAIEMENT) 
    INNER JOIN MODEREGLEMENT ON CLIENTSOCIETE.MODEREGLEMENT = MODEREGLEMENT.PK_MODEREGLEMENT) 
    LEFT JOIN ADRESSETIERS ADRESSETIERS_1 ON INTERLOCUTEURCLIENT.ADRESSE = ADRESSETIERS_1.PK_ADRESSETIERS
    WHERE (((SOCIETETH.CODE)="FOIFR") AND ((CLIENT.TYPE)=1) AND ((CLIENT.DESACTIVE)=0));

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    pas de AS pour l'alias des tables.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut
    Merci à vous, l'erreur venait bien de là.

    Mais sa me surprend que le AS passe dans le SELECT mais pas dans le FROM

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Met le tag

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

Discussions similaires

  1. [2.x] Erreur 500 sur une requête AKAX
    Par dukoid dans le forum Symfony
    Réponses: 1
    Dernier message: 07/03/2013, 19h25
  2. Réponses: 2
    Dernier message: 21/10/2008, 13h57
  3. [access 2003/VBA/SQL] Erreur d'execution 3201 sur une requête.
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/05/2008, 09h04
  4. Réponses: 8
    Dernier message: 01/03/2005, 16h01
  5. [Access] Manque d'idées sur une requête
    Par portu dans le forum Langage SQL
    Réponses: 12
    Dernier message: 22/11/2004, 12h25

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