问题描述
我正在尝试按字母顺序对用其本国语言书写的组织名称进行排序,这意味着它们可能包含重音或特定于语言的字符。
select org_name
from organisations
order by org_name COLLATE GENERIC_M;
它准确地返回我想要的内容并按我想要的方式排序。
现在尝试使用 Oracle 对具有相同架构的 Doctrine 执行相同操作时遇到了麻烦。
当我使用查询构建器时,我不能只在查询中指定“COLLATE GENERIC_M”部分。
在查看了学说文档后,我在我的实体中尝试了这样的 'options' 属性注释
/**
* @ORM\Column(type="string",length=255,name="org_name",options={"collation":"GENERIC_M"})
*/
private $name;
这显然不起作用,因为 Doctrine 不支持 Oracle 供应商的此属性。
我也尝试在我的学说配置中这样指定:
driver: 'oci8'
service: true
user: '%env(DATABASE_USER)%'
password: '%env(DATABASE_PASS)%'
options:
1002: "SET NAMES 'UTF8' COLLATE 'GENERIC_M'"
但没有变化(当然是在清除缓存之后)。
我想避免在架构级别更改设置,因为它是一个已经上线的项目,我不想引入副作用。 我还想避免在这个简单的查询中使用普通的 sql,因为我使用了学说分页。
还有其他方法可以实现我的主要目标吗?
先谢谢你
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)