powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Изменить тип данных поля таблицы
4 сообщений из 4, страница 1 из 1
Изменить тип данных поля таблицы
    #37302070
eugenia-ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Был создан тип, на его основе - таблица.
create type TYPENAME as (
...
note varchar(100)
...
)
mode db2sql;

Появилась необходимость увеличить длину поля note.
Возможно ли это в принципе для типов? Возможно ли это без потери данных?
...
Рейтинг: 0 / 0
Изменить тип данных поля таблицы
    #37303217
asbestos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eugenia-ch,

увеличить можно и без потерь. Но только для некоторых типов данных, которые допускают неявное преобразование, если мне не изменяет память. В Вашем случае можно спокойно увеличить размер поля.
Если есть гуя в виде центра управления, то там можно попытаться изменить тип данных колонки. Если элементы управления не затемнены серым, то операцию можно произвести спокойно и без потерь.
...
Рейтинг: 0 / 0
Изменить тип данных поля таблицы
    #37319588
eugenia-ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю следующее:
Код: plaintext
ALTER TABLE TABLE_NAME ALTER COLUMN NOTE SET DATA TYPE VARCHAR ( 200 );
Получаю:
Код: plaintext
Operation "SET DATA TYPE" is not valid for typed tables.

Так, что вопрос открыт. Решение пока мною не найдено.
...
Рейтинг: 0 / 0
Изменить тип данных поля таблицы
    #37339139
massaraksh33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
изменить можно, но только пересозданием всех зависимых объектов. План примерно такой:

1. для каждой таблицы которая использует этот тип создаётся временная, в которой структурный тип "разворачивается" в обычные колонки.
2. во временные таблицы переливаются данные из исходных и исходные таблицы удаляются
3. удаляются наследованые структурные типы
4. пересоздаётся тип, который надо изменить

Потом всё в обратной последовательности.

Если есть не просто таблицы, которые этот тип используют, а структурные таблицы, да еще и с наследование, то алгоритм получится еще сложнее. Но в принципе ситуация разрешима.

Раньше такой скрипт умел генерить TOAD for DB2 - просто открываешь структурный тип и альтеришь что надо. На данный момент эта функциональность там поломана, но можно попробовать найти старую версию, возможно, 4.7 или даже еще раньше. Или подождать выхода новой беты - через месяц-другой этот кусок там должен заработать.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Изменить тип данных поля таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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