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

  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
    22 001
    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 : 22 001
    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
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    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 : 22 001
    Billets dans le blog
    6
    Par défaut
    Non, il y a quelques bonnes choses dans Oracle :
    Data Vault et ExaData... mais pour le reste il est très à la traine et en plus le plus cher de tous....
    Sans parler des multiples interdictions pour empêcher les comparaisons fâcheuses... Souvenez vous du Benchmark Dewitt qui montrait que Oracle était le pus mauvais SGBDR de l'époque :
    https://danluu.com/anon-benchmark/
    Depuis Larry Ellison ayant fait interdire toute publication de benchmarks on ne peut pas montrer publiquement combien il est mauvais en terme de performances... Néanmoins, il est facile de le montrer en faisant quelques comparaisons simples ce qu'ils nous est arrivé de faire de nombreuses fois chez nos clients !

    mais il se pourrait que de nouveaux benchmarks publics peu flatteurs pour Oracle voient le jour. En effet, il semble bien que cette clause soit totalement illégale :
    https://dwheeler.com/essays/dewitt-clause.html

    Notez qu'en France, la publicité comparative est légale.
    https://www.legifrance.gouv.fr/affic...Texte=20090405
    Or la Loi l'emporte sur le contrat...

    Bref c'est comme penser acheter une Rolls , pour le prix d'une Rolls, et se retrouver avec une Dacia...

    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/ * * * * *

  8. #8
    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.

  9. #9
    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