在我的数据库中有以下数据:
Axe 1. « Gouvernance, Etat de Droit, Sécurité, Décentralisation, Démocratie, Solidarité nationale ».
在我的Hibernate sql中,我想制作一个where
条件:
SELECT COUNT(*) FROM pnd WHERE CONVERT(LOWER(TO_CHAR(PND_INTITULE)), 'US7ASCII') = :fk // fk will be replaced by the value `Axe 1. « Gouvernance, Etat de Droit, Sécurité, Décentralisation, Démocratie, Solidarité nationale ».`
问题是计数返回0!我创建了一个获取CONVERT(LOWER(TO_CHAR(PND_INTITULE))
的select语句,然后返回数据,其中双引号更改为开头引号的<
和结束引号的>
!那么如何解决这个问题?
答案 0 :(得分:3)
由于您的CONVERT
而发生替换。我认为US7ASCII
字符集没有双引号字符,所以它使用最接近的字符。
SELECT LOWER(TO_CHAR('Axe 1. « Gouvernance ».')), -- axe 1. « gouvernance ».
CONVERT(LOWER(TO_CHAR('Axe 1. « Gouvernance ».')),'US7ASCII') -- axe 1. < gouvernance >.
FROM dual;
您有两种选择,可以删除CONVERT
或在绑定变量CONVERT
上添加相同的:fk