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 :

Demande aide requête SQL


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2020
    Messages : 5
    Par défaut Demande aide requête SQL
    Bonjour,
    Je suis débutant SGBD. Sous Oracle SQL Developer j'essaie de compléter une table en une seule commande d'insertion et je suis confronté à l'erreur suivante:

    Erreur commençant à la ligne: 1 de la commande -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    INSERT INTO client (PRENOM_ET_NOM_C, ADRESSE_C, CODE_POSTAL_C, VILLE_C, TELEPHONE_C, ADRESSE_MAIL_C)
     VALUES
    	('Jacques_Use','12_allee_verdun',6130,'grasse',2082050600,'jacques@laposte.net'),
    	('Jean_Fontaine','123_chemin_de_la_plage',12200,'paris',2082050601,'jean.fontaine@gmail.com'),
    	('Paul_Bocuse','52_rue_des_nouilles',13400,'strasbourg',2082050602,'vaillant06@voici.fr'),
    	('Astride_Vaillant','23_allee_de_la_montagne',99000,'nice',2082050603,'a.vaillant@youpi.fr'),
    	('Elise_Demichelis','2a_rue_des_roses',12000,'rouen',2082050604,'edemich@cestmoi.fr'),
    	('Marc_Gigogne','154_chemin_de_nul_part',67100,'toulouse',2082050605,'jeanne@arc.xyz'),
    	('Jeanne_Darc','99_route_du_retour',98002,'vitrolle',2082050606,'arc@arc.arc'),
    	('Michel_Vaillant','501_au_bou_du_monde',75011,'tucgneu',2082050607,'michel_vaillant@dis.dis'),
    	('Florent_Bousig','42_allee_des_cornailles',20400,'bilbao',2082050608,'flo.flo@flo.flo'),
    	('Max_Menace','17_allee_des_zazallees',12365,'bezier',2082050609,'m.m@m.m');
    Erreur à la ligne de commande: 3 Colonne: 82
    Rapport d'erreur -
    Erreur SQL : ORA-00933: la commande SQL ne se termine pas correctement
    00933. 00000 - "SQL command not properly ended"
    Les entêtes des colonnes de la table sont vérifiées et correctes.
    L'erreur se trouverait donc à la fin du premier groupe de données. Je ne comprends pas.
    Je vous remercie d'avance pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 175
    Par défaut
    Bonjour,

    Sous Oracle tu ne peux pas avoir plusieurs clauses VALUES pour un INSERT dans une seule table. Soit tu dupliques les INSERT INTO ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO client (PRENOM_ET_NOM_C, ADRESSE_C, CODE_POSTAL_C, VILLE_C, TELEPHONE_C, ADRESSE_MAIL_C)
    VALUES ('Jacques_Use','12_allee_verdun',6130,'grasse',2082050600,'jacques@laposte.net');
     
    INSERT INTO client (PRENOM_ET_NOM_C, ADRESSE_C, CODE_POSTAL_C, VILLE_C, TELEPHONE_C, ADRESSE_MAIL_C)
    VALUES ('Jean_Fontaine','123_chemin_de_la_plage',12200,'paris',2082050601,'jean.fontaine@gmail.com');
    .....
    Soit tu utilises la pseudo-table DUAL avec des UNION ALL pour constituer tes lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO client (PRENOM_ET_NOM_C, ADRESSE_C, CODE_POSTAL_C, VILLE_C, TELEPHONE_C, ADRESSE_MAIL_C)
    SELECT 'Jacques_Use','12_allee_verdun',6130,'grasse',2082050600,'jacques@laposte.net' FROM DUAL
    UNION ALL
    SELECT 'Jean_Fontaine','123_chemin_de_la_plage',12200,'paris',2082050601,'jean.fontaine@gmail.com' FROM DUAL
    UNION ALL
    ....
    SELECT 'Max_Menace','17_allee_des_zazallees',12365,'bezier',2082050609,'m.m@m.m' FROM DUAL;

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2020
    Messages : 5
    Par défaut Merci pour votre réponse.
    Merci beaucoup pour cette réponse parfaitement claire. Je vais adopter la première solution, beaucoup plus simple pour un débutant comme moi

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il y a également l'astuce du insert all :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    insert all
        into client (PRENOM_ET_NOM_C, ADRESSE_C, CODE_POSTAL_C, VILLE_C, TELEPHONE_C, ADRESSE_MAIL_C) VALUES ('Jacques_Use','12_allee_verdun',6130,'grasse',2082050600,'jacques@laposte.net')
        into client (PRENOM_ET_NOM_C, ADRESSE_C, CODE_POSTAL_C, VILLE_C, TELEPHONE_C, ADRESSE_MAIL_C) VALUES ('Jean_Fontaine','123_chemin_de_la_plage',12200,'paris',2082050601,'jean.fontaine@gmail.com')
        into client (PRENOM_ET_NOM_C, ADRESSE_C, CODE_POSTAL_C, VILLE_C, TELEPHONE_C, ADRESSE_MAIL_C) VALUES ('Max_Menace','17_allee_des_zazallees',12365,'bezier',2082050609,'m.m@m.m')
    select * from dual;
    Ma solution "préférée" est la seconde proposée par vanagreg.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2020
    Messages : 5
    Par défaut
    Bonjour, merci pour cette seconde solution, Oracle ne délivre pas ses secrets facilement....

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 608
    Billets dans le blog
    10
    Par défaut
    Attention, la table est mal modélisée :
    - avoir les informations de l'adresse dans la table client est acceptable si et seulement si tout client a une et une seule adresse
    - idem pour le téléphone
    - une même colonne pour le nom et le prénom est une hérésie
    - idem pour l'adresse qui devrait être découpée en lignes adresse
    - le code postal et la ville auraient avantage à être externalisés

    En l'état, si vous recherchez tous vos clients qui résident à "Neung sur Beuvron", vous ne trouverez pas ceux dont la ville a été orthographiée "Neung-sur-Beuvron" ou encore "Neung s/s Beuvron"...
    Alors qu'un lien vers une table des villes vous affranchit de ce genre de soucis et fiabilise vos adresses

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/11/2007, 22h23
  2. Aide Requête SQL
    Par jjg65 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/07/2007, 10h37
  3. Aide requête SQL - UPDATE phpmyadmin
    Par laulau37 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/06/2007, 10h19
  4. Aide requête sql
    Par viny dans le forum PostgreSQL
    Réponses: 18
    Dernier message: 14/09/2006, 21h31
  5. Aide Requête SQL (UPDATE)
    Par Glowprod dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/07/2006, 14h04

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