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 :

00933. 00000 - "SQL command not properly ended"


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2018
    Messages : 2
    Par défaut 00933. 00000 - "SQL command not properly ended"
    Bonjour,

    Nouveau sur le forum je sollicite votre aide, ayant cherché une réponse déjà existante à ma question et ne la trouvant pas.
    Je débute en SQL et j'essaie d'insérer plusieurs lignes d'un coup à une table que je viens de créer. Voici mes lignes de commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create table Table_test_debut (Test_1 VARCHAR2(12), Test_2 INTEGER);
    insert into Table_test_debut ( TEST_1, TEST_2)
    values ('pamire', '19');
    select * from Table_test_debut;
    Ici tout va bien, je crée ma table et y ajoute une premiere ligne, puis l'affiche.
    Ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO Table_test_debut (Test_1, Test_2)
     VALUES
     ('Rébecca', 24),
     ('Aimée',36),
     ('Marielle', 27),
     ('Hilaire', 58);
    Et c'est là que le bât blesse, je cherche à insérer plusieurs lignes d'un coup et on me donne le message d'erreur donné en titre. Si quelqu'un a une idée, merci d'avance

  2. #2
    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
    Pour les insertions multiples, il faut passer par du select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO Table_test_debut (Test_1, Test_2)
    SELECT 'Rébecca', 24 FROM dual
    UNION ALL SELECT 'Aimée',36 FROM dual
    UNION ALL SELECT 'Marielle',27 FROM dual
    UNION ALL SELECT 'Hilaire',58 FROM dual
    Ou alors utiliser des collections

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2018
    Messages : 2
    Par défaut
    Bonjour McM,

    Merci de ta réponse, ca marche parfaitement. Je ne savais pas et avais trouvé ce genre de syntaxe en cherchant réponse à ma question. Je vais regarder les collections

  4. #4
    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
    En effet, en recherchant le cours sql sur developpez, j'ai aussi vu cette notation, mais je pense que c'est du mysql ou autre.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Non, cette notation s’appelle un constructeur de lignes valuées (TABLE VALUE CONSTRUCTOR) et est supporté par la norme SQL depuis plus de 15 ans (norme SQL:1999). Cela passe très bien sous PostGreSQL et MIcrosoft SQL Server....

    Cela permet aussi des constructions plus avancées comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *
    FROM   (VALUES(1),(2),(3),(4),(5)) x(a) CROSS JOIN
           (VALUES(1),(2),(3),(4),(5)) y(b) CROSS JOIN
           (VALUES(1),(2),(3),(4),(5)) z(c)
    WHERE  5*5*(a-1) + 5*(b-1) + c <= 100
    ORDER  BY 1;

    Il serait temps que Oracle rattrape ses retards !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Mais qu'est-ce que t'a fait Oracle, le meilleur SGBD du monde, pour que tu le déteste à ce point?
    Toutes tes remarques sentent fort l'amoureux éconduit.

  7. #7
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il serait temps que Oracle rattrape ses retards !
    Oracle est un SGBD commercial dont le but est de résoudre des problèmes clients. Ce qu'il y a dans la norme SQL n'est pas systématiquement implémenté si cela rajoute une complexité sans apporter quelque chose de nécessaire. Surtout quand il y a d'autres features qui répondent au problème, implémentées bien avant la norme.
    Sinon, plutôt que de troller, le meilleur moyen pour voir cette feature implémentée, c'est d'alimenter l'Enhancement Request (https://support.oracle.com/epmos/fac...ay?id=28424374) avec des cas clients où cette fonctionalité serait souhaitable.

  8. #8
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par theguettas Voir le message
    Bonjour,

    Je débute en SQL et j'essaie d'insérer plusieurs lignes d'un coup à une table que je viens de créer. Voici mes lignes de commande :
    ...
    Voilà la syntaxe qui fonctionne avec Oracle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Insert All 
      Into Table_test_debut (Test_1, Test_2)  VALUES ('Rébecca', 24)
      Into Table_test_debut (Test_1, Test_2)  VALUES ('Aimée',36)
      Into Table_test_debut (Test_1, Test_2)  VALUES ('Marielle', 27)
      Into Table_test_debut (Test_1, Test_2)  VALUES ('Hilaire', 58)
    Select null
      From dual
    Sinon pour utiliser SQL avec Oracle la meilleur solution c'est de consulter la documentation d'Oracle SQL Language References

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

Discussions similaires

  1. ORA-00933: SQL command not properly ended
    Par yupa dans le forum Oracle
    Réponses: 3
    Dernier message: 29/03/2022, 15h12
  2. ORA-00933 : SQL COMMAND NOT PROPERLY ENDED
    Par karnass dans le forum SQL
    Réponses: 2
    Dernier message: 20/12/2012, 14h40
  3. [AC-2007] ORA-00933: SQL command not properly ended (#933)
    Par zoom61 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/12/2010, 09h38
  4. Réponses: 1
    Dernier message: 08/02/2008, 17h32

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