Symfoware ServerのODBC連携時の各国語文字列型に対するLIKE述語の使用方法について

ODBC連携を使用してデータベースにアクセスする場合、各国語文字列型のカラムに対してSELECT文でLIKE述語を使用すると、検索結果が0件になったり、エラーになったりします。原因と対処方法を教えてください。
[原因]
MicrosoftのODBCにはそもそも各国語文字列型というものがないことが原因です。そのため、SymfowareでODBCを利用する場合、各国語文字列型は非推奨です。
ほかにも、ODBCを利用してプロシジャルーチンを実行する場合、各国語文字列型の変数を宣言したプロシジャルーチンを実行できない、といった注意があります。実行するとJYP2511Eエラーになります。

[対処方法]
ODBCでアクセスしたい場合、テーブル定義の各国語文字列型(nchar)を文字列型(char)に変更できないか、検討してください。

なお、各国語文字列型に対してLIKE述語を使用する場合、エスケープしなくてよいなら、char型と同様の書き方をすることで対応できます(Nを付けずに、%を半角で記述します)。ただし、エスケープ文字を指定するとJYP8854Eエラーになります。

ODBC連携時の各国語文字列型に対するLIKE述語の使用については、以下のマニュアルを参照してください。

  Symfoware Server V10.1.0 トラブルシューティング集
    第2章 アプリケーション開発時の異常
      2.2 言語別アプリケーション開発時の異常
        2.2.3 ODBC対応開発ツールでの開発時の異常(運用)

なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。

製品・サービス区分 Symfoware
製品・サービス情報
対象製品 Symfoware Server (Native Interface)
プラットフォーム Windows, Solaris, Linux
アンサー種別 設計/開発
このページの先頭へ