Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Insert db2 / 4 сообщений из 4, страница 1 из 1
04.10.2012, 14:21
    #37983639
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert db2
Добрый день!
Помогите пожалуйста!

Делаю,
1)
Код: sql
1.
2.
alter table MACRORATESITEMS
alter column scaption set data type varchar(50);


2)
Код: sql
1.
reorg table MACRORATESITEMS;


3)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
insert into MACRORATESITEMS 
(IDRATEITEM, SCAPTION) 
VALUES 
(1, 'Среднедушевой доход'),
(2, 'Индекс Потребительских Цен'),
(3, 'Численность населения'),
(4, 'Внутренняя миграция прибыло'),
(5, 'Внутренняя миграция выбыло'),
(6, 'Внешняя миграция прибыло'),
(7, 'Внешняя миграция выбыло'),
(8, 'Валовый Региональный Продукт'),
(9, 'Пассажиропоток автотранспорт'),
(10, 'Пассажирооборот автотранспорт');



Получаю,
DB2 Database Error: ERROR [23505] [IBM][DB2/LINUXX8664] SQL0803N One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by "1" constrains table "WHDATA.MACRORATESITEMS" from having duplicate values for the index key. SQLSTATE=23505


В чем причина?

Спасибо!
...
Рейтинг: 0 / 0
04.10.2012, 14:24
    #37983651
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert db2
vadipok,

Ой не то, это уже при повторном запуске, а при первичном выходит такая ошибка.
Statusbar: 04.10.2012 16:23:55: DB2 Database Error: ERROR [22001] [IBM][DB2/LINUXX8664] SQL0433N Value "Внутренняя миграция прибыло" is too long. SQLSTATE=22001
...
Рейтинг: 0 / 0
04.10.2012, 14:34
    #37983690
Insert db2
vadipok,

Если таблица в многобайтной кодировке(UTF, Unicode), то все логично.
Размер символьной колонки задается в байтах.
А один символ в многобайтной кодировке может занимать несколько байт, что необходимо учитывать при дизайне таблицы.
В UTF-8 указанная строка "Внутренняя миграция прибыло" будет занимать 52 байта, т.к. каждый символ кириллицы будет занимать два байта (25 кириллицы + 2 пробела).
...
Рейтинг: 0 / 0
04.10.2012, 14:41
    #37983723
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert db2
Евгений Хабаровvadipok,

Если таблица в многобайтной кодировке(UTF, Unicode), то все логично.
Размер символьной колонки задается в байтах.
А один символ в многобайтной кодировке может занимать несколько байт, что необходимо учитывать при дизайне таблицы.
В UTF-8 указанная строка "Внутренняя миграция прибыло" будет занимать 52 байта, т.к. каждый символ кириллицы будет занимать два байта (25 кириллицы + 2 пробела).

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


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