Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-00911 :Caractère non valide via ODBC, Adhoc SQL - dans les commentaires ?

Si un commentaire inclut le mot entier end alors le pilote Oracle (ou le serveur) semble mal interpréter cela. Si vous supprimez le end mot dans le commentaire, l'instruction s'exécute correctement.

Je pense que c'est parce qu'il n'attend pas de point-virgule après avoir rencontré une directive "end" (même s'il ne devrait pas analyser un commentaire).

L'instruction suivante s'exécute sans problème et renvoie 7.

/* end */\nSELECT 7 FROM MyTable 

L'instruction suivante déclenche ORA-00911

/* end */\nSELECT 6 FROM MyTable;

L'instruction suivante renvoie 5

/**/\nSELECT 5 FROM MyTable;

Il est probable qu'Oracle analyse le commentaire car c'est ainsi qu'il applique les "conseils" d'opération/d'optimisation de jointure.