powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Компарер баз: вычисляемый BLOB
7 сообщений из 7, страница 1 из 1
Компарер баз: вычисляемый BLOB
    #39153869
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Compare result изменений в таблицах нет, тем не менее постоянно выдается следующий скрипт:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
ALTER TABLE DIR$CS$KIND_WORK ALTER COLUMN CURRENT_COST_HINT
  /* BLOB SUB_TYPE 1 */ COMPUTED BY ((SELECT
    LIST(T.LINE, ASCII_CHAR(13) || ASCII_CHAR(10))
FROM
    (SELECT
        FORMAT_DATE(P.DATE_BEGIN) || ': ' || FORMAT_AMOUNT(PW.COST) AS LINE
    FROM
       DIR$CS$KW_PRICE P
       INNER JOIN DIR$CS$KW_PRICE_KW PW ON PW.ID_PRICE = P.ID
   WHERE
       PW.ID_KIND_WORK = DIR$CS$KIND_WORK.ID
       AND P.DATE_BEGIN <= CURRENT_DATE
       AND (PW.COST IS NOT NULL)
   ORDER BY
       P.DATE_BEGIN DESC
       ) T
));


После его выполнения, он все равно выдается.
Как оказалось, разница вот в этом:
Код: sql
1.
BLOB SUB_TYPE 1 CHARACTER SET NONE

в оригинальной таблице и
Код: sql
1.
BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET NONE

в обновляемой.
Имеет ли смысл вывести в Compare result, что у них разный SEGMENT SIZE, чтобы знать, где копать?
...
Рейтинг: 0 / 0
Компарер баз: вычисляемый BLOB
    #39153928
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,
А попробуй сравнить базу с самой собой. Будет такой же эффект?
...
Рейтинг: 0 / 0
Компарер баз: вычисляемый BLOB
    #39154195
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

Что самое интересное, сравнение оригинальной базы самой с собой выдает отсутствие расхождений.
...
Рейтинг: 0 / 0
Компарер баз: вычисляемый BLOB
    #39154219
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А там действительно разный SEGMENT SIZE? Смотреть надо в RDB$FIELDS, а не в скрипт.
...
Рейтинг: 0 / 0
Компарер баз: вычисляемый BLOB
    #39154240
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас нет расхождений, потому что оригинальное поле обновил.

Тут странно получается. В одной из необновленных баз информация о домене такая:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET NONE
COMPUTED BY ((SELECT
    LIST(T.LINE, ASCII_CHAR(13) || ASCII_CHAR(10))
FROM
    (SELECT
        FORMAT_DATE(P.DATE_BEGIN) || ': ' || FORMAT_AMOUNT(PW.COST) AS LINE
    FROM
       DIR$CS$KW_PRICE P
       INNER JOIN DIR$CS$KW_PRICE_KW PW ON PW.ID_PRICE = P.ID
   WHERE
       PW.ID_KIND_WORK = DIR$CS$KIND_WORK.ID
       AND P.DATE_BEGIN <= CURRENT_DATE
       AND PW.COST IS NOT NULL
   ORDER BY
       P.DATE_BEGIN DESC
       ) T
))
COLLATE NONE


А вот такая сейчас в мастер-базе после ALTER этого поля:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET WIN1251
COMPUTED BY ((SELECT
    LIST(T.LINE, ASCII_CHAR(13) || ASCII_CHAR(10))
FROM
    (SELECT
        FORMAT_DATE(P.DATE_BEGIN) || ': ' || FORMAT_AMOUNT(PW.COST) AS LINE
    FROM
       DIR$CS$KW_PRICE P
       INNER JOIN DIR$CS$KW_PRICE_KW PW ON PW.ID_PRICE = P.ID
   WHERE
       PW.ID_KIND_WORK = DIR$CS$KIND_WORK.ID
       AND P.DATE_BEGIN <= CURRENT_DATE
       AND (PW.COST IS NOT NULL)
   ORDER BY
       P.DATE_BEGIN DESC
       ) T
))


Отличаются CHARACTER SET и отсутствием COLLATE. Как так получилось, не знаю.
...
Рейтинг: 0 / 0
Компарер баз: вычисляемый BLOB
    #39154243
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

Выбираю это поле в редакторе. После нажатия "ОК" IBExpert пытается выполнить следующий скрипт, хотя ничего не менялось:
Код: sql
1.
2.
3.
4.
update RDB$RELATION_FIELDS set
RDB$COLLATION_ID = NULL
where (RDB$FIELD_NAME = 'CURRENT_COST_HINT') and
(RDB$RELATION_NAME = 'DIR$CS$KIND_WORK')
...
Рейтинг: 0 / 0
Компарер баз: вычисляемый BLOB
    #39155687
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxОтличаются CHARACTER SET и отсутствием COLLATE. Как так получилось, не знаю.

COLLATE для блобов не используется. Ну а раз чарсет отличается - компарер и выдает это в скрипт.
В результатах этого не видно, потому что DLL таблиц не отличается - это понятно. Видимо, нужно расшифровку типов доменов еще выводить, тогда видно будет.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Компарер баз: вычисляемый BLOB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]