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 参数字符串无效

我是 oracle 和 this 的新手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 回答