SQL-запрос с использованием Firebird и чужих символов вызывает ошибку неверной строки - PullRequest
0 голосов
/ 30 октября 2018

У меня есть простой пример, который вызывает ошибку при использовании 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 голосов
/ 01 ноября 2018

Я решил мою проблему, как предложено. Я привязываю параметры и теперь все отлично работает

...