|
Компарер, ошибка с COLLATE
|
|||
---|---|---|---|
#18+
Добрый день. Если в результате сравнения тип поля меняется на домен (CHAR или VARCHAR) и при этом тип CHAR меняется на VARCHAR или наоборот, то происходит «сброс» COLLATE на «нулевой». Изменения в примере: В поле F_1 тип CHAR(5) меняется на домен CHAR(5) – все в порядке. В поле F_2 тип CHAR(5) меняется на домен VARCHAR(5) – «обнуляется» COLLATE. В поле F_3 тип VARCHAR(5) меняется на домен CHAR(5) – «обнуляется» COLLATE. В поле F_4 тип VARCHAR(5) меняется на домен VARCHAR(5) – все в порядке. В поле F_5 домен VARCHAR(5) меняется на домен CHAR(5) – все в порядке. В поле F_6 домен CHAR(5) меняется на домен VARCHAR(5) – все в порядке. Пример: Чарсет БД WIN1257, COLLATE WIN1257_LV: CREATE DATABASE 'TEST.fdb' USER 'SYSDBA' PASSWORD 'masterkey' DEFAULT CHARACTER SET WIN1257 COLLATION WIN1257_LV Домены в обеих базах одинаковые: CREATE DOMAIN D_CH5 AS CHAR(5) CHARACTER SET WIN1257 COLLATE WIN1257_LV; CREATE DOMAIN D_VARCH5 AS VARCHAR(5) CHARACTER SET WIN1257 COLLATE WIN1257_LV; Мастер: CREATE TABLE TABLE_1 ( F_1 D_CH5 /* D_CH5 = CHAR(5) */, F_2 D_VARCH5 /* D_VARCH5 = VARCHAR(5) */, F_3 D_CH5 /* D_CH5 = CHAR(5) */, F_4 D_VARCH5 /* D_VARCH5 = VARCHAR(5) */, F_5 D_CH5 /* D_CH5 = CHAR(5) */, F_6 D_VARCH5 /* D_VARCH5 = VARCHAR(5) */ ); Таргет: CREATE TABLE TABLE_1 ( F_1 CHAR(5), F_2 CHAR(5), F_3 VARCHAR(5), F_4 VARCHAR(5), F_5 D_VARCH5 /* D_VARCH5 = VARCHAR(5) */, F_6 D_CH5 /* D_CH5 = CHAR(5) */ ); Результирующий скрипт: ALTER TABLE TABLE_1 ALTER COLUMN F_1 TYPE D_CH5; ALTER TABLE TABLE_1 ALTER COLUMN F_2 TYPE D_VARCH5; UPDATE RDB$RELATION_FIELDS SET RDB$COLLATION_ID = 0 WHERE (RDB$RELATION_NAME = 'TABLE_1') AND (RDB$FIELD_NAME = 'F_2'); COMMIT WORK; ALTER TABLE TABLE_1 ALTER COLUMN F_3 TYPE D_CH5; UPDATE RDB$RELATION_FIELDS SET RDB$COLLATION_ID = 0 WHERE (RDB$RELATION_NAME = 'TABLE_1') AND (RDB$FIELD_NAME = 'F_3'); COMMIT WORK; ALTER TABLE TABLE_1 ALTER COLUMN F_4 TYPE D_VARCH5; ALTER TABLE TABLE_1 ALTER COLUMN F_5 TYPE D_CH5; ALTER TABLE TABLE_1 ALTER COLUMN F_6 TYPE D_VARCH5; ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 16:06 |
|
Компарер, ошибка с COLLATE
|
|||
---|---|---|---|
#18+
Исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2016, 14:24 |
|
Компарер, ошибка с COLLATE
|
|||
---|---|---|---|
#18+
Спасибо. Аналогичная ситуация наблюдается и в IBEscript.exe (в dll возможно тоже). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2016, 10:58 |
|
|
start [/forum/topic.php?fid=42&fpage=23&tid=1599289]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 296ms |
total: | 421ms |
0 / 0 |