0

per_va_first_nameこんにちは、次のクエリを使用するときに、列名を持つビューで照合を使用しようとしています:

SELECT *
 FROM person_view
 WHERE NLSSORT(per_va_first_name, 'NLS_SORT = FRENCH_AI') = NLSSORT('mickaël', 'NLS_SORT  =FRENCH_AI')

エラーが発生します

ORA-12702: SQL関数で無効なNLSパラメータ文字列が使用されています

私はオラクルとこれが初めてですnlssort。誰かが私の間違いを指摘するのを手伝ってくれますか? 同時に、Hibernate for Java で collat​​e を使用したいと考えています。同じフランス語の文字セット。

編集:

これらのコマンドをSQLで使用すると

alter session set nls_sort=French_AI;
alter session set nls_comp=linguistic;

このクエリが実行されると、目的の出力が得られます

SELECT * FROM v_myuser_search_test_ea4 where per_va_first_name like 'Mickaël%'

休止状態でこれを行う方法は? 「CI」をFrench_AIに追加して「French_AI_CI」にする方法はありますか

4

1 に答える 1

-1

http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions113.htm#SQLRF51562にある Oracle のドキュメントによると

クエリを次のように変更できます

SELECT *
FROM person_view
ORDER BY NLSORT(per_va_first_name, 'NLS_SORT = FRENCH_AI_CI')

Hibernate はそれを理解する必要がありますが、これは Oracle 固有の機能であるため、データベースの移植性はすでに失われています。

于 2014-07-18T09:13:57.250 に答える