0
votes

Insertion de plusieurs lignes de requête a échoué

INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)
VALUES  (7499,'ALLEN','SALESMAN',7698,'20-Feb-81',1600,300,30)
      , (7521,'WARD','SALESMAN',7698,'22-Feb-81',1250,500,30);
Tried to insert two rows at the same time. but failed saying "SQL command not properly ended". Can someone please correct the query?Error:
  Error at Command Line : 18 Column : 125 Error report - SQL Error: ORA-00933: SQL command not properly ended 00933. 00000 - "SQL command not properly ended" *Cause: *Action:

2 commentaires

Partagez quelle erreur vous obtenez.


@Gaurav Insérer dans EMP (Empno, EMP (EMPNO, ENAME, JOBE, MGR, EMPLACEMENT, SAL, COMM, DEPTNO) Valeurs (7499, "Allen", "Vendeur", 7698, '20 -Feb-81 ', 1600 300,30) , (7521, 'Ward', 'vendeur', 7 698, '22 -FEB-81 ', 1250, 500,30) Erreur lors de la commande de commande: 18 Colonne: 125 Rapport d'erreur - Erreur SQL: ORA-00933 : Commande SQL non terminée correctement 00933. 00000 - "Commande SQL non terminée" * Cause: * Action:


4 Réponses :


3
votes

Basé sur votre message d'erreur (ORA-00933: commande SQL non terminée correctement), le SGBD est oracle.

Vous pouvez utiliser la requête suivante sur insérer dans code> dans Oracle. P >

INSERT ALL  
  INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES (7499,'ALLEN','SALESMAN',7698,'20-Feb-81',1600,300,30)  
  INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES (7521,'WARD','SALESMAN',7698,'22-Feb-81',1250,500,30)


2 commentaires

: Obtenir une erreur d'erreur dans les valeurs EMP (EMPNO, ENAME, EMPNO, ENAFLE, EMPNO, ENAMF, JOB, MGR, JOG, DEPTNO) (7499, «Allen», «Vendeur», 7698, '20 -FEB-81 ', 1600 300, 30) Dans EMP (Empno, Ename, Job, Mgr, Hariatate, Sal, Comm, deptno) Valeurs (7521, 'Ward', «Vendeur», 7698, '22 -FEB-81 ', 1250 500,30) Erreur À la ligne de commande: 22 Colonne: 118 Rapport d'erreur - Erreur SQL: ORA-00928: Mot-clé de sélection manquant 00928. 00000 - "Mot-clé de sélection manquant"


Il manque la relève SELECT requise à la fin. Voir la documentation pour Insérer .



1
votes

Pour insérer plusieurs enregistrements dans Oracle, vous devez cliquer sur vos enregistrements dans CTE code>. Ou utilisez insérer tout code> comme mentionné par @Arulkumar.

INSERT INTO Emp (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) 
  WITH names AS ( 
    SELECT 7499,'ALLEN','SALESMAN',7698,'20-Feb-81',1600,300,30 UNION ALL 
    SELECT 7521,'WARD','SALESMAN',7698,'22-Feb-81',1250,500,30 
  ) 
  SELECT * FROM names


0 commentaires

1
votes

Votre syntaxe est destinée à Microsoft SQL Server, mais votre message d'erreur provient d'un fichier DBMS Oracle.

Vous pouvez utiliser l'insertion Toutes les requêtes: P>

INSERT ALL
  INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
  INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
  INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
SELECT * FROM dual;


0 commentaires

2
votes

Essayez comme ci-dessous

insert into emp  (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)

select 7499,'ALLEN','SALESMAN',7698,'20-Feb-81',1600,300,30  from dual
union all
select 7521,'WARD','SALESMAN',7698,'22-Feb-81',1250,500,30 from dual


2 commentaires

Ça a fonctionné ... merci


@beyou marquez-le comme accepté si cela aide