Fehlerbehebung für einen „ORA-00936“-Fehler mit einer INSERT SELECT-Anweisung in Oracle 11G
Ein „ORA-00936: fehlender Ausdruck“-Fehler kann beim Ausführen einer INSERT SELECT-Anweisung in Oracle 11G auftreten. Lassen Sie uns einen konkreten Fall analysieren, um dieses Problem zu lösen.
Problem:
Eine SQL-Anweisung versucht, Daten aus einer Unterabfrage in eine Tabelle einzufügen:
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
Wenn die Unterabfrage separat ausgeführt wird, funktioniert sie ordnungsgemäß und ruft Zeilen aus zwei Tabellen ab, oldtable1 und oldtable2. Bei der Ausführung als Datenquelle für die INSERT-Anweisung tritt jedoch der Fehler „ORA-00936: fehlender Ausdruck“ auf.
Lösung:
Der Fehler stammt von eine falsche Syntax in der INSERT-Anweisung. Das Schlüsselwort VALUES ist nicht erforderlich, wenn eine SELECT-Anweisung zum Auffüllen der Zieltabelle verwendet wird. Die korrekte Syntax sollte wie folgt lauten:
insert into table1 (col1, col2) select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
Durch Weglassen des VALUES-Teils führt die INSERT-Anweisung die Unterabfrage korrekt aus und füllt Tabelle1 mit den ausgewählten Daten.
Das obige ist der detaillierte Inhalt vonWie kann „ORA-00936: fehlender Ausdruck' in Oracle 11g INSERT SELECT-Anweisungen behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!