双引号转换为<和>

时间:2017-10-19 13:10:30

标签: oracle oracle11g

在我的数据库中有以下数据:

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语句,然后返回数据,其中双引号更改为开头引号的<和结束引号的>!那么如何解决这个问题?

1 个答案:

答案 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