对大写

时间:2016-10-25 09:32:48

标签: oracle symfony doctrine

我在使用Doctrine的请求时遇到了一些问题。

我在我的实体上做findOneByFieldName,它应该检索我一个对象。

我希望findOneByNameSurnameNameSurname是一个字符串),其参数包含例如' BEART Jean-Francois'

我想要的是,如果表格中只有 BEART Jean-Francois ,那么该学说将检索用户 BEART Jean-Francois 。尽管如此,如果我用f小写字母给' BEART Jean-francois' 这个学说,那么学说仍会检索到持有' BEART的用户Jean-Francois' 字段F大写。

我想要的是,教义应该对整个字符串敏感,我的意思是它不应该对重复的名称进行调整,即使实际上它不是重复的名称,因为它的写法不同(f字母大写) )。

我尝试直接在SqlDeveloper中运行SQL请求,以测试Oracle是否在' Jean-Francois'中使用f小写或大写的区别。 ,它就是。

那我错过了什么?我怎么能说教义,如果你给我的字符串参数得到f小写,而你只在DB中找到F大写,请不要找回任何东西,不是一场比赛...

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

在我的oracle Listener中解决了我的问题....

我有:

private static $_SQL_SET_SORT = "ALTER SESSION SET NLS_SORT=Latin_AI";
private static $_SQL_SET_COMP = "ALTER SESSION SET NLS_COMP=LINGUISTIC";

将其改为,现在学说很敏感:

 private static $_SQL_SET_SORT = "ALTER SESSION SET NLS_SORT=BINARY_CI";
  private static $_SQL_SET_COMP = "ALTER SESSION SET NLS_COMP=BINARY";

有关详细信息,请参阅此帖子:

Case insensitive searching in Oracle