powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 truncate varchar in sql: insert into(select * from...)
6 сообщений из 6, страница 1 из 1
DB2 truncate varchar in sql: insert into(select * from...)
    #39317256
curious_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Стоит задача перенести данные таблиц с DB2v8 for Z/OS в DB2v10.5 for AIX.

Подключил к DB2v10.5 for AIX nickname от DB2v8 for Z/OS.
Кодировка таблиц в DB2 for Z/OS: CCSID ASCII
Кодировка в DB2 for AIX: UTF-8.
Предварительно, на DB2 for AIX во всех столбцах всех таблиц
увеличил поля с типом CHAR,VARCHAR в 2 раза.

Затем запускаю SQL запрос в DB2 for AIX вида:
insert into MYSCHEMA.TABLE1 (select * from MYSCHEMA.NICKNAME_TABLE1);

Однако в столбцах с типом VARCHAR данные перенеслись у урезанном виде:
Т.е слова пообрезались в этих столбцах на половину или даже больше.
Почему так произошло и как это исправить? Ведь я перед переносом данных и так в 2 раза поувеличивал столбцы с типом:
CHAR,VARCHAR?
...
Рейтинг: 0 / 0
DB2 truncate varchar in sql: insert into(select * from...)
    #39317510
curious_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Важное дополнение: Когда пытаюсь вывести содерживое таблицы DB2 for Z/OS из DB2 for AIX:
select * from MYSCHEMA.NICKNAME_TABLE1
то данные в столбцах VARCHAR выводятся уже обрезанными. Т.е проблемма не в том, что я недостаточно расширил
столбцы CHAR,VARCHAR в таблицых DB2 for AIX.

Т.е протокол DRDA почему-то обрезает.
...
Рейтинг: 0 / 0
DB2 truncate varchar in sql: insert into(select * from...)
    #39317942
curious_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще одно дополнение:
1.
Обрезаются все данные с типом CHAR,VARCHAR в 2 раза.
2.
Когда я создал еще одну базу данных на AIX:
db2 create db MYDB2 USING CODESET 1251 TERRITORY RU;
и подключил nicknam-ы от базы DB2 for Z/OS, то
столбцы перестали обрезаться!

И как сейчас решить проблемму? Т.е скопировать все данные в MYDB2 а потом поменять кодировку с CODESET 1251 на CODESET UTF-8 ?
...
Рейтинг: 0 / 0
DB2 truncate varchar in sql: insert into(select * from...)
    #39318422
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
curious_man,

NVARCHAR не пробовали?
...
Рейтинг: 0 / 0
DB2 truncate varchar in sql: insert into(select * from...)
    #39318687
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
curious_man,

Код: sql
1.
ALTER NICKNAME <nickname> ALTER COLUMN <colname> LOCAL TYPE CHAR( <size * 2> );


или, соответственно, VARCHAR. Данные в CHAR/VARCHAR в никнеймах только в OCTETS.

Список никнеймов и колонок 0- SYSCAT.TABLES (TYPE = 'N'), SYSCAT.COLUMNS.
Сгенерите набор альтеров запросом.
...
Рейтинг: 0 / 0
DB2 truncate varchar in sql: insert into(select * from...)
    #39319752
curious_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPb,

Сделал как написали: n x 2.
Сейчас не обрезает текст.
Спасибо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 truncate varchar in sql: insert into(select * from...)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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