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 | ||||
---|---|---|---|---|---|
製品・サービス情報 |
|
||||
アンサー種別 | 設計/開発 |