使用Firebird和外来字符的SQL查询会导致格式错误的字符串错误

时间:2018-10-29 21:49:12

标签: sql firebird malformed

我有一个简单的示例,该示例使用Firebird SQL导致错误。

我有一个表,表中有一个名为Details的列,定义为:

DETAILS varchar(261) COLLATE UNICODE

如果我尝试执行以下查询:

SELECT a.DETAILS
FROM MODHISTORY a 
WHERE
    a.DETAILS LIKE '%Â%'

我得到了错误:

Error: *** IBPP::SQLException ***
Context: Statement::Prepare( SELECT a.DETAILS
FROM MODHISTORY a 
WHERE
    a.DETAILS LIKE '%Â%'
 )
Message: isc_dsql_prepare failed

SQL Message : -104
Invalid token

Engine Code    : 335544849
Engine Message :
Malformed string

如果我在连接字符串中使用CHARSET = UTF8连接到数据库,此错误就消失了,但是不幸的是,在连接到数据库时,由于某些其他表包含,所以我不能使用UTF8作为字符集,例如:

SampleData blob sub_type 1 CHARACTER SET ASCII,

1 个答案:

答案 0 :(得分:0)

我已经按照建议解决了我的问题。我正在绑定参数,现在一切正常