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 :

Probleme requete sql SQL Error: ORA-00905: mot-clé absent


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut Probleme requete sql SQL Error: ORA-00905: mot-clé absent
    Bonjour

    Je travaille sous Oracle 10g

    Je veux mettre mes doublons dans ma table temporaire mais ça ne marche pas
    J'ai un probleme avec ma requete SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT DISTINCT IMAGE_ID,PATH, PRODUIT_BIZ, PATTERN 
    INTO CAT_IMAGES_TMP 
    FROM CAT_IMAGES 
    GROUP BY IMAGE_ID, PATH, PRODUIT_BIZ, PATTERN
    HAVING COUNT(*) > 1;
    Voici le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Error at Command Line:2 Column:5
    Error report:
    SQL Error: ORA-00905: mot-clé absent
    Merci pour votre aide

    Cordialement Philippe

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Salut ,

    En plsql en met select ... into ...
    mais en sql t'as pas besoin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT DISTINCT IMAGE_ID,PATH, PRODUIT_BIZ, PATTERN 
    FROM CAT_IMAGES 
    GROUP BY IMAGE_ID, PATH, PRODUIT_BIZ, PATTERN
    HAVING COUNT(*) > 1;

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    Merci Salim,

    Ta requete fonctionne, j'arrive à récupérer les lignes qui sont en doublons!

    Le problème c'est qu'il faut que j'envoi ces lignes (mes doublons) vers ma table temporaire

    Comment je peux faire ça avec une requete SQL?

    Cordialement Philippe

  4. #4
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    tu te trompes de syntaxe, en oracle, c'est pas comme ça qu'on fait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO CAT_IMAGES_TMP 
    SELECT DISTINCT IMAGE_ID,PATH, PRODUIT_BIZ, PATTERN 
    FROM CAT_IMAGES 
    GROUP BY IMAGE_ID, PATH, PRODUIT_BIZ, PATTERN
    HAVING COUNT(*) > 1;

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    Ah oui! Merci d'avoir corriger mon erreur de synthaxe!

    Le seul probleme c'est que mon IMAGE_ID est une clé primaire (donc il y a une incrémentation automatique), si je teste sur tous les champs de ma table je ne trouverai aucun doublon puisque le champs IMAGE_ID sera différent pour chaque ligne.

    Et si je met la requete SQL suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INSERT INTO CAT_IMAGES_TMP 
    SELECT DISTINCT PATH, PRODUIT_BIZ, PATTERN 
    FROM CAT_IMAGES 
    GROUP BY PATH, PRODUIT_BIZ, PATTERN
    HAVING COUNT(*) > 1;
    J'obtiens l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Error starting at line 1 in command:
    INSERT INTO CAT_IMAGES_TMP 
    SELECT DISTINCT PATH, PRODUIT_BIZ, PATTERN 
    FROM CAT_IMAGES 
    GROUP BY PATH, PRODUIT_BIZ, PATTERN
    HAVING COUNT(*) > 1
    Error at Command Line:1 Column:12
    Error report:
    SQL Error: ORA-00947: nombre de valeurs insuffisant
    Merci pour votre aide

  6. #6
    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
    1/ INSERT : TOUJOURS mettre les colonnes insérées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO MATABLE (col1, col18, col2) SELECT ....
    2/ L'utilisation du DISTINCT à limiter
    Un group by te regroupe déjà les 3 colonnes : Pourquoi refaire un distinct ensuite ?

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

Discussions similaires

  1. Probleme requete update SQL
    Par linuxien_62 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 22/08/2013, 13h37
  2. ORA-00905: mot-clé absent
    Par dalhia dans le forum Oracle
    Réponses: 10
    Dernier message: 05/08/2010, 16h30
  3. erreur ORA 00905 : Mot clé absent sur un CASE WHEN
    Par gaijinma dans le forum PL/SQL
    Réponses: 2
    Dernier message: 01/07/2010, 14h32
  4. ORA-00905: mot-clé absent
    Par sofuzion dans le forum SQL
    Réponses: 4
    Dernier message: 07/12/2008, 16h29
  5. ORA-00905: Mot-clé absent
    Par oraclinfo dans le forum Oracle
    Réponses: 2
    Dernier message: 19/09/2006, 14h11

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