Heim >Datenbank >MySQL-Tutorial >Wie verwende ich INSERT SELECT in Oracle 11g richtig, um ORA-00936 zu vermeiden?
In Oracle 11G ermöglicht die INSERT SELECT-Anweisung eine effiziente Datenübertragung von einer Tabelle in eine andere mithilfe einer Unterabfrage. Allerdings können bei Benutzern unerwartete Fehler auftreten, wenn ihre Syntax nicht korrekt ist.
Benutzerabfrage:
Ein Benutzer hat versucht, die Ergebnisse einer Unterabfrage mit in eine neue Tabelle einzufügen die folgende Aussage:
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
Der Benutzer ist jedoch auf Folgendes gestoßen Fehler:
SQL Error: ORA-00936: missing expression
Lösung:
Die bereitgestellte Syntax ist falsch. Die INSERT SELECT-Anweisung in Oracle erfordert nicht das Schlüsselwort VALUES, das häufig in anderen SQL-Dialekten verwendet wird. Die korrekte Syntax sollte wie folgt lauten:
insert into table1 (col1, col2) select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
Mit anderen Worten: Entfernen Sie einfach das Schlüsselwort VALUES vom Anfang der Anweisung. Dadurch kann Oracle die INSERT SELECT-Abfrage korrekt ausführen und die Ergebnisse der Unterabfrage in Tabelle1 einfügen.
Das obige ist der detaillierte Inhalt vonWie verwende ich INSERT SELECT in Oracle 11g richtig, um ORA-00936 zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!