sql >> データベース >  >> RDS >> Oracle

ORA-00911:ODBC、アドホック SQL による無効な文字 - コメント内?

    コメントに end という単語全体が含まれている場合 Oracle ドライバー (またはサーバー) がこれを正しく解釈していないように見えます。end を削除すると、 コメント内の単語である場合、ステートメントは正しく実行されます。

    これは、'end' ディレクティブを経験した後にセミコロンを想定していないためだと思います (コメントを解析するべきではありませんが)。

    次のステートメントは問題なく実行され、7 が返されます。

    /* end */\nSELECT 7 FROM MyTable 
    

    次のステートメントでは、ORA-00911 が発生します

    /* end */\nSELECT 6 FROM MyTable;
    

    次のステートメントは 5 を返します

    /**/\nSELECT 5 FROM MyTable;
    

    結合操作/最適化の「ヒント」を適用する方法であるため、Oracle がコメントを解析する可能性があります。




    1. 個別の列フォーマットを使用せずに、sqlplusによる列名の切り捨てを防止する

    2. アラビア文字がデータベースに挿入されないのはなぜですか?

    3. カスタムSQLクエリに苦労している

    4. Sql Server 2005 で最近の高価なクエリを表示する方法はありますか?