Опять я наврал (сам не проверил, а уже забыл, что читал). Collation DE_de не определена для UTF8 (да и во всем FB), для UTF8 там есть только UCS_BASIC и UNICODE. Тебе нужен последний (уже проверил, работает правильно).

Опять непонятно. Я так понимаю что UCS_BASIC по умолчанию? Да это и не важно. Подключаюсь к базе с использованием UTF8 и говорю:

1.

SELECT _UTF8 'Z' COLLATE UCS_BASIC FROM RDB$DATABASE
UNION ALL
SELECT _UTF8 'A' COLLATE UCS_BASIC FROM RDB$DATABASE
UNION ALL
SELECT _UTF8 'a' COLLATE UCS_BASIC FROM RDB$DATABASE
ORDER BY 1

работает


2.

SELECT _UTF8 'Z' COLLATE UNICODE FROM RDB$DATABASE
UNION ALL
SELECT _UTF8 'A' COLLATE UNICODE FROM RDB$DATABASE
UNION ALL
SELECT _UTF8 'a' COLLATE UNICODE FROM RDB$DATABASE
ORDER BY 1

тоже всё путём


3. самое интересное

SELECT _UTF8 'Z' FROM RDB$DATABASE
UNION ALL
SELECT _UTF8 'A' FROM RDB$DATABASE
UNION ALL
SELECT _UTF8 'a' FROM RDB$DATABASE
ORDER BY 1

получаю Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.

Подозреваю что запрос должен отработать. Проверял в блейзтопе и в эксперте.

Ответить