Какие-то непонятки...
Вроде на 1.5 функция SUBSTRING должна преобразовывать текстовый BLOB в VARCHAR, однако это срабатывает для блобов в созданных мной таблицах, и не работает в системных.

Вот такой запрос выполняется нормально:
 select c.Num, c.Name, substring(c.Requisits from 1 for 1000)
 from client  с

а вот такой:
SELECT  substring(rf.RDB$DESCRIPTION from 1 for 1000), rf.RDB$FIELD_NAME
FROM RDB$RELATIONS r, RDB$RELATION_FIELDS rf, RDB$FIELDS f, RDB$TYPES rt
        WHERE
          (r.RDB$RELATION_NAME = rf.RDB$RELATION_NAME) and
          (rf.RDB$FIELD_SOURCE =f.RDB$FIELD_NAME)  and
          (f.RDB$FIELD_TYPE = rt.RDB$TYPE)   and
          ((r.RDB$SYSTEM_FLAG = 0) and (r.RDB$VIEW_SOURCE IS NULL) and
           (rt.RDB$FIELD_NAME = 'RDB$FIELD_TYPE')) and
          (r.RDB$RELATION_NAME='EMPGROUP')
дает
conversion error from string "BLOB".

Разница в объявлении полей вроде только в Charset: у меня c.Requisits типа WIN1251,
а в RDB$RELATION_FIELDS -- UNICODE_FSS

Как это обойти?
Чарсет коннекта - WIN1251

Ответить