web-dev-qa-db-fra.com

Obtenir l'erreur "ORA-00911" lorsque j'essaie d'insérer plus d'une ligne

Disons que j'ai les déclarations suivantes insert.

INSERT INTO E_PRODUCT VALUES ('PCD2', 'PC Dual Core', 499, 22, 475, 'PC', NULL);
INSERT INTO E_PRODUCT VALUES ('PCL4', 'Laptop PC', 599, 9, 225, 'PC', NULL);
INSERT INTO E_PRODUCT VALUES ('PCQ5', 'PC Quad Core', 699, 25, 41, 'PC', NULL);
INSERT INTO E_PRODUCT VALUES ('RAM5', '512 Meg RAM Chip', 49.95, 0.25, 625, 'STO', 'No');
INSERT INTO E_PRODUCT VALUES ('RAM9', '1GB RAM Chip', 109.95, 0.3, 513, 'STO', 'No');
INSERT INTO E_PRODUCT VALUES ('VCD2', 'Video Card', 59.95, 1.25, 1210, 'IO', 'No');

J'utilise Oracle Express Edition 10G et à l'aide de l'interface Web pour exécuter ces instructions.

Si je les insère un par un, ils fonctionnent correctement, mais si je les saisis tous à la fois et que je tente d'exécuter, je reçois l'erreur suivante.

ORA-00911: invalid character

Comment puis-je résoudre ce problème?

Merci.

5
itsaboutcode

Je soupçonne que vous voulez mettre le tout dans un bloc PL/SQL anonyme et courir cela, c'est-à-dire.

BEGIN
  INSERT INTO E_PRODUCT VALUES ('PCD2', 'PC Dual Core', 499, 22, 475, 'PC', NULL);
  INSERT INTO E_PRODUCT VALUES ('PCL4', 'Laptop PC', 599, 9, 225, 'PC', NULL);
  INSERT INTO E_PRODUCT VALUES ('PCQ5', 'PC Quad Core', 699, 25, 41, 'PC', NULL);
  INSERT INTO E_PRODUCT VALUES ('RAM5', '512 Meg RAM Chip', 49.95, 0.25, 625, 'STO', 'No');
  INSERT INTO E_PRODUCT VALUES ('RAM9', '1GB RAM Chip', 109.95, 0.3, 513, 'STO', 'No');
  INSERT INTO E_PRODUCT VALUES ('VCD2', 'Video Card', 59.95, 1.25, 1210, 'IO', 'No');
END;

Selon l'outil (SQL * Plus, TOAD, ISQL * Plus, SQL Developer, et l'outil de requête APEX peut avoir des exigences de syntaxe légèrement différentes), vous pouvez également ajouter un caractère '/' après chaque instruction insertion.

  INSERT INTO E_PRODUCT VALUES ('PCD2', 'PC Dual Core', 499, 22, 475, 'PC', NULL);
  /
  INSERT INTO E_PRODUCT VALUES ('PCL4', 'Laptop PC', 599, 9, 225, 'PC', NULL);
  /
  INSERT INTO E_PRODUCT VALUES ('PCQ5', 'PC Quad Core', 699, 25, 41, 'PC', NULL);
  /
  INSERT INTO E_PRODUCT VALUES ('RAM5', '512 Meg RAM Chip', 49.95, 0.25, 625, 'STO', 'No');
  /
  INSERT INTO E_PRODUCT VALUES ('RAM9', '1GB RAM Chip', 109.95, 0.3, 513, 'STO', 'No');
  /
  INSERT INTO E_PRODUCT VALUES ('VCD2', 'Video Card', 59.95, 1.25, 1210, 'IO', 'No');
  /
7
Justin Cave

Un peu de retard, mais peut-être utile néanmoins:

L'interface Web de Xe redoutée (APEX) ne prend pas en charge en exécutant plusieurs instructions ou un script complet.

Vous devez utiliser un outil différent (E.G. SQL Developer) ou exécuter une déclaration à la fois.

0