powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Comparer и Computed by - поля
6 сообщений из 6, страница 1 из 1
Comparer и Computed by - поля
    #39703830
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При сравнении базы со скриптом получаем следующий Warning:

-- Unable to perform safe data type conversion:

ALTER TABLE ACC_LIST ALTER COLUMN AL_ACCOUNT
/* ? DataType */ COMPUTED BY (al_from_bg_id||'/'||al_number);

Метаданные в таблицах двух сравниваемых баз не отличаются. Да и по-идее какой тип данных у вычисляемого поля?
IBExpert 2018.6.8.1
Ниже метаданные таблицы из скрипта:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE TABLE ACC_LIST (
    AL_ID           VARCHAR(20) NOT NULL,
    AL_FROM_REG_ID  INTEGER NOT NULL,
    AL_DATE         DATE,
    AL_FROM_BG_ID   VARCHAR(20) NOT NULL,
    AL_CURRENCY     VARCHAR(3) NOT NULL,
    AL_NUMBER       INTEGER NOT NULL,
    AL_TYPE         INTEGER NOT NULL,
    AL_NAME         VARCHAR(200),
    AL_MEMO         VARCHAR(255),
    AL_DATE_CLOSE   DATE,
    AL_IS_ACTIVE    SMALLINT DEFAULT 1,
    IS_DELETE       SMALLINT DEFAULT 0,
    AL_FROM_BL_ID   VARCHAR(10),
    AL_ACCOUNT      COMPUTED BY (al_from_bg_id||'/'||al_number),
    AL_FROM_ACC_ID  D_ID
);



А это из окна DDL, сравниваемой таблицы:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE TABLE ACC_LIST (
    AL_ID           VARCHAR(20) NOT NULL,
    AL_FROM_REG_ID  INTEGER NOT NULL,
    AL_DATE         DATE,
    AL_FROM_BG_ID   VARCHAR(20) NOT NULL,
    AL_CURRENCY     VARCHAR(3) NOT NULL,
    AL_NUMBER       INTEGER NOT NULL,
    AL_TYPE         INTEGER NOT NULL,
    AL_NAME         VARCHAR(200),
    AL_MEMO         VARCHAR(255),
    AL_DATE_CLOSE   DATE,
    AL_IS_ACTIVE    SMALLINT DEFAULT 1,
    IS_DELETE       SMALLINT DEFAULT 0,
    AL_FROM_BL_ID   VARCHAR(10),
    AL_ACCOUNT      COMPUTED BY (al_from_bg_id||'/'||al_number),
    AL_FROM_ACC_ID  D_ID /* D_ID = BIGINT */
);
...
Рейтинг: 0 / 0
Comparer и Computed by - поля
    #39703911
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AtanasМетаданные в таблицах двух сравниваемых баз не отличаются. Да и по-идее какой тип данных у вычисляемого поля?


Ты, наверное, удивишься, но у вычисляемых полей таки есть конкретный тип данных.
Вот в базе он есть, а в скрипте его нет.
...
Рейтинг: 0 / 0
Comparer и Computed by - поля
    #39703919
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atanas,

Скорее всего менялся тип al_from_bg_id или al_number. Включи галку "Включать в определения таблиц информацию об используемых доменах" в верху вкладки "Скрипт".
...
Рейтинг: 0 / 0
Comparer и Computed by - поля
    #39703938
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxСкорее всего менялся тип al_from_bg_id или al_number.

Менялся или не менялся - это совершенно неважно в данном случае.
В скрипте нет информации о типе данных вычисляемого поля, именно поэтому возникает описанная проблема.
...
Рейтинг: 0 / 0
Comparer и Computed by - поля
    #39704057
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpertCyberMaxСкорее всего менялся тип al_from_bg_id или al_number.

Менялся или не менялся - это совершенно неважно в данном случае.
В скрипте нет информации о типе данных вычисляемого поля, именно поэтому возникает описанная проблема.

Проблема не столько в warning'e. Процедуры/триггеры связанные с этим полем попадают в генерируемый скрипт обновления, хотя они тоже не менялись.
Может как вариант, не считать изменением отсутствие типа данных в скрипте, при условии что формула вычисления поля совпадает в сравниваемых полях?
...
Рейтинг: 0 / 0
Comparer и Computed by - поля
    #39704128
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AtanasМожет как вариант, не считать изменением отсутствие типа данных в скрипте, при условии что формула вычисления поля совпадает в сравниваемых полях?

Для получения адекватного скрипта надо сравнивать базу с базой. Сравнение чего-то там со скриптами - только для посмотреть.
Точка.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Comparer и Computed by - поля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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