jsp レポートを実行した後、次のエラーが表示されます。
クエリ タグ:doAfterBody()、0、サポートされていない SQL92 トークンの位置: 3477: S
次のスニペットが問題「{S}」を引き起こしていることを知っています:
…….. AND (L.Applicable_Location_Region_ID IN (N'PARIS2', N'{S}Paris2'))
私の調査によると、次のことがわかりました: Oracle は SQL を解析し、"'{S}Paris2" のテキストを文字列リテラルとして扱い、{S} を見つけます。認識。
次のリンクは、「エスケープ文字」についてよく説明しています: http://docs.oracle.com/cd/F49540_01/DOC/inter.815/a67843/cqspcl.htm
{S} に続けて名前を使用する必要があります。
上記の AND ステートメントは、SQL Server と MySQL では正常に機能しますが、Oracle では「中かっこを使用して単一の文字をエスケープすると、エスケープされた文字がクエリ内の別のトークンになる」という問題が発生します。
上記の理由により、アプリケーションは {S} を扱います。これは、エスケープされた中括弧付きの 1 文字がクエリ内の別のトークンになるためです。
ですから、オラクルで中括弧を使用して単一の文字をエスケープする方法や提案をお願いします。