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

ORA-00911:Ungültiges Zeichen über ODBC, Adhoc SQL - innerhalb von Kommentaren?

Wenn ein Kommentar das ganze Wort end enthält dann scheint der Oracle-Treiber (oder Server) dies schlecht zu interpretieren. Wenn Sie das end entfernen Wort innerhalb des Kommentars, wird die Anweisung korrekt ausgeführt.

Ich denke, das liegt daran, dass es kein Semikolon erwartet, nachdem es eine 'end'-Direktive erfahren hat (obwohl es keinen Kommentar analysieren sollte).

Die folgende Anweisung wird ohne Probleme ausgeführt und gibt 7.

zurück
/* end */\nSELECT 7 FROM MyTable 

Die folgende Anweisung löst ORA-00911

aus
/* end */\nSELECT 6 FROM MyTable;

Die folgende Anweisung gibt 5

zurück
/**/\nSELECT 5 FROM MyTable;

Es ist wahrscheinlich, dass Oracle den Kommentar parst, weil es auf diese Weise „Hinweise“ zur Join-Operation/Optimierung anwendet.