sql >> Database >  >> RDS >> Oracle

Ik krijg een foutmelding in de SQL-opdracht die niet correct is beëindigd

In Oracle kun je niet meerdere sets waarden zoals deze specificeren (ik vermoed dat je uit een MySQL-achtergrond komt waar die syntaxis is toegestaan). De eenvoudigste aanpak is om meerdere INSERT . te genereren verklaringen

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);

...

U kunt ook meerdere rijen invoegen met een enkele INSERT ALL verklaring

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;


  1. Equivalent van PostgreSQL's array_agg in Oracle XE 11.2

  2. SQLite Like()-functie met voorbeelden

  3. Inactieve mysql-verbindingen beëindigen

  4. MYSQL:soortgelijke methode, vergelijkbare woorden - maar laat het gezochte woord niet zien