Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Ich erhalte einen Fehler in einem SQL-Befehl, der nicht ordnungsgemäß beendet wurde

In Oracle können Sie nicht mehrere Wertesätze wie folgt angeben (ich vermute, dass Sie aus einem MySQL-Hintergrund kommen, in dem diese Syntax zulässig ist). Der einfachste Ansatz besteht darin, mehrere INSERT zu generieren Aussagen

INSERT INTO works_on
(essn, pno, hours)
values
('123456789', 1, 32.5);

INSERT INTO works_on
(essn, pno, hours)
values
('123456789', 2, 7.5);

INSERT INTO works_on
(essn, pno, hours)
values
('666884444', 3, 40.0);

...

Sie können auch mehrere Zeilen mit einem einzigen INSERT ALL einfügen Erklärung

INSERT ALL
  INTO works_on(essn, pno, hours) values('123456789', 1, 32.5)
  INTO works_on(essn, pno, hours) values('123456789', 2, 7.5)
  INTO works_on(essn, pno, hours) values('666884444', 3, 40.0)
  INTO works_on(essn, pno, hours) values('453453453', 1, 20.0)
  INTO works_on(essn, pno, hours) values('453453453', 2, 20.0)
  INTO works_on(essn, pno, hours) values('333445555', 2, 10.0)
  INTO works_on(essn, pno, hours) values('333445555', 3, 10.0)
  ...
SELECT *
  FROM dual;