Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема FIRSTKEYCARD=32 / 25 сообщений из 51, страница 1 из 3
30.08.2005, 13:53
    #33241079
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Пытаюсь опять поменять атрибуты таблицы и опять ошибка, которую DB2 сама себе создает. Непонятно, IBM вообще тестирует свои продукты или нет, и почему продукты Microsoft называют глючными в таком случае...
Вот, что выдает эта DB2:
UPDATE SYSSTAT.INDEXES
SET NLEAF=1,
NLEVELS=1,
FIRSTKEYCARD=32,
FIRST2KEYCARD=-1,
FIRST3KEYCARD=-1,
FIRST4KEYCARD=-1,
FULLKEYCARD=32,
CLUSTERFACTOR=-1.000000,
CLUSTERRATIO=100,
SEQUENTIAL_PAGES=0,
DENSITY=0,
AVERAGE_SEQUENCE_GAP=0.000000,
AVERAGE_SEQUENCE_FETCH_GAP=0.000000,
AVERAGE_SEQUENCE_PAGES=0.000000,
AVERAGE_SEQUENCE_FETCH_PAGES=0.000000,
AVERAGE_RANDOM_PAGES=1.000000,
AVERAGE_RANDOM_FETCH_PAGES=0.000000,
NUMRIDS=32,
NUMRIDS_DELETED=0,
NUM_EMPTY_LEAFS=0
WHERE COLNAMES = '+PK'
AND TABNAME = 'COUNTRIES' AND TABSCHEMA = 'TEST'
...
Рейтинг: 0 / 0
30.08.2005, 13:57
    #33241091
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Это после замены руками запятых на точки, еще вылезла беда
...
Рейтинг: 0 / 0
30.08.2005, 14:43
    #33241233
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
а изначально какой statement был?
alter table чего-там?
Ну чтобы повторить ошибку
...
Рейтинг: 0 / 0
30.08.2005, 15:14
    #33241328
nkulikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Зачем тебе это нужно объясни.
...
Рейтинг: 0 / 0
30.08.2005, 15:22
    #33241356
nkulikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
У меня из DB2 Control Center QuestCentral, DbVisualiser, DB2 CLP все работает, правда на другой таблице. Но это не важно
...
Рейтинг: 0 / 0
30.08.2005, 16:11
    #33241516
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
чё-то я не пойму, что делать надо, чтобы ошибку повторить.
делаю
db2 alter table emp_resume alter column resume_format set data type varchar(11)
отрабатывает.
Или чего-то другое надо делать, и я в тему не въехал?
...
Рейтинг: 0 / 0
30.08.2005, 16:44
    #33241634
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Кстати, я понял, в чем дело было, просто DB2 это изменение пропустила, хотя нельзя было. Я изменил атрибут, что он NULL не допускает, а в одной строке этой таблицы он был NULL. Поэтому, наверное, при изменении свойств атрибута, когда DB2 генерит кучу запросов автоматически (в том числе и тот, что я выше указал), эта ошибка и вылезла. Хотя вообще по правилам DB2 не должна даже была начать эту процедуру, если есть с NULL хотя бы одна запись.
...
Рейтинг: 0 / 0
30.08.2005, 19:38
    #33242114
Эстонский голем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
ExtraterrestrialКстати, я понял, в чем дело было, просто DB2 это изменение пропустила, хотя нельзя было. Я изменил атрибут, что он NULL не допускает, а в одной строке этой таблицы он был NULL. Поэтому, наверное, при изменении свойств атрибута, когда DB2 генерит кучу запросов автоматически (в том числе и тот, что я выше указал), эта ошибка и вылезла. Хотя вообще по правилам DB2 не должна даже была начать эту процедуру, если есть с NULL хотя бы одна запись.
ну и что и ничего в этом поучительного проблемы ребенка за комьютером
...
Рейтинг: 0 / 0
30.08.2005, 21:40
    #33242216
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Честно говоря, я не в курсе твоих проблем. А сколько тебе лет мальчик?
Меня интересует (это уже не к детям обращение) на самом деле данный вопрос в более широком плане, а часто ли DB2 так себя ведет и не может ли подобное привести вообще к потере данных, даже без возникновения той ошибки (в принципе, она была некритической).

Эстонский голем
ну и что и ничего в этом поучительного проблемы ребенка за комьютером
...
Рейтинг: 0 / 0
31.08.2005, 08:48
    #33242447
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Egor - а можно здесь привести полный текст sql statement чтобы повторить ошибку?
Может я туплю, но что-то не нашел его (statement) в обсуждении.
...
Рейтинг: 0 / 0
31.08.2005, 10:45
    #33242765
nkulikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Давай полностью опиши что ты делаешь, обсуждать отрывочные SQL операторы смысла нет.
...
Рейтинг: 0 / 0
31.08.2005, 23:52
    #33244654
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
nkulikovДавай полностью опиши что ты делаешь, обсуждать отрывочные SQL операторы смысла нет.

Хорошо постараюсь. У меня есть таблица: три колонки, одна из которых в отличие от первых двух имеет свойство Nullable в значении Yes. Я его меняю на No. Таблица имеет 32 строки, только для одной из которых в этой колонке содержится NULL. Соответственно по идее DB2 не должна пропустить такое изменение, но она начинает стандартную процедуру изменения (её описывать?): первые три и пятый шаги выполняет, а в 4-ом (Restore table statistics and re-create dependent objects) происходит некритическая ошибка "FIRSTKEYCARD=32". Вот и все. В итоге я получаю измененную таблицу.
...
Рейтинг: 0 / 0
01.09.2005, 09:05
    #33244900
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
ggv@mars Thu 01 Sep 7:14 [~] > db2level
DB21085I Instance "db2inst1" uses "32" bits and DB2 code release "SQL08023"
with level identifier "03040106".
Informational tokens are "DB2 v8.1.2.96", "s050811", "MI00142", and FixPak
"10".
Product is installed at "/opt/IBM/db2/V8.1".

ggv@mars Thu 01 Sep 7:08 [~] > db2 "create table new_test(id int not null primary key, name varchar(5))"
DB20000I The SQL command completed successfully.

ggv@mars Thu 01 Sep 7:10 [~] > db2 "insert into new_test values(1,'aa'),(2,'bb'),(3,'cc'),(4,'dd'),(5,'ee'),(6,'ff')"
DB20000I The SQL command completed successfully.

ggv@mars Thu 01 Sep 7:10 [~] > db2 insert "into new_test(id) values(7)"
DB20000I The SQL command completed successfully.

ggv@mars Thu 01 Sep 7:14 [~] > db2 alter table new_test "add check (name is not null)"
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0544N The check constraint "SQL050901071412400" cannot be added because
the table contains a row that violates the constraint. SQLSTATE=23512

То есть я пока не могу повторить ошибку.
...
Рейтинг: 0 / 0
01.09.2005, 14:57
    #33246238
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
О какой ошибке идёт речь? Я пару раз перечитал тему и ничего не понял. Тогда я сделал таблицу сам, только не 32 записи, а 10:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE m1(
  x1 INTEGER NOT NULL primary key,
  x2 INTEGER NOT NULL,
  x3 VARCHAR ( 100 )
);

INSERT INTO m1 values
  ( 0 , 1 ,'aaa'),
  ( 1 , 1 ,'aaa'),
  ( 2 , 1 ,'aaa'),
  ( 3 , 1 ,'aaa'),
  ( 4 , 1 ,'aaa'),
  ( 5 , 1 ,'aaa'),
  ( 6 , 1 ,'aaa'),
  ( 7 , 1 ,'aaa'),
  ( 8 , 1 ,'aaa'),
  ( 9 , 1 ,CAST(NULL AS VARCHAR( 10 )))
;
create index mxx on m1(x3);
runstats on table vvm.m1 with distribution and detailed indexes all; 

сменил в CC тип поля x3 на not null. Да, IBM-еры до сих пор не пофиксили проставление запятой вместо необходимой точки (даже в FP10), но никакой "проблемы FIRSTKEYCARD=32" не заметил, равно как и "проблемы FIRSTKEYCARD=10".

Может, вы хотите, чтобы было 31 и 9 соответственно? И не надейтесь - это не ошибка, а фича, описанная в документации. Хотите правильных значений - пускайте runstats.
...
Рейтинг: 0 / 0
02.09.2005, 20:23
    #33249453
Эстонский голем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
ExtraterrestrialЧестно говоря, я не в курсе твоих проблем. А сколько тебе лет мальчик?
Меня интересует (это уже не к детям обращение) на самом деле данный вопрос в более широком плане, а часто ли DB2 так себя ведет и не может ли подобное привести вообще к потере данных, даже без возникновения той ошибки (в принципе, она была некритической).

Эстонский големну и что и ничего в этом поучительного проблемы ребенка за комьютером

у меня праблем нету но насамом деле у тебя с DB2 ничего неполучится также как ис документумом и компани медиа руки не под то заточены
...
Рейтинг: 0 / 0
02.09.2005, 21:54
    #33249513
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Эстонский голем
у меня праблем нету но насамом деле у тебя с DB2 ничего неполучится также как ис документумом и компани медиа руки не под то заточены

А по-моему, есть, иначе бы ты сюда писал по делу, а не по зависти и злобству, но я не психоаналитик, у меня нет времени тебя анализировать, сорри. Просто советую пойти и хорошо развлечься, найти там гёрлиц повеселей и погорячей :-) В общем, отдохни душой и телом эстонский парень, расслабся :-)
...
Рейтинг: 0 / 0
03.09.2005, 02:47
    #33249616
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Речь идет о том, что по идее не должно было пройти такое изменение таблицы, если в ней есть строки, которые противоречат новым ограничениям. Или не так? Я просто не так уж и много работал с реляционками (больше с другим продуктом IBM, Lotus Notes, собственно, почему и пробую сейчас DB2, так как IBM явно переводит LN на DB2, да и с Workplace все ясно, но там выбор реляционок побольше, что приятно, так как MS SQL Server мне в свое время понравился больше, не возникало столько проблем, как с DB2, хотя тоже были, но лечились Service Pack-ами), но пока работал, у меня сложилось именно такое впечатление. Если я что-то неправильно понимаю, то поправьте, плиз. DB2 только ругнулась на FIRSTKEYCARD=32, но в целевой таблице изменение сделала на NOT NULL, написала: Load re-created table, and check data and relationship integrity. Разумеется, что строка с NULL была ликвидирована. Все изменения я делал с помощью клиента DB2. Может в нем дело? Ручками я каждый запрос сам не прописываю, для меня это ненормальная потеря времени. Если есть визуальные средства, то они должны работать, иначе, зачем они тогда? Для меня важна прежде всего возможность быстрой разработки и надежность системы.

Victor MetelitsaО какой ошибке идёт речь? Я пару раз перечитал тему и ничего не понял. Тогда я сделал таблицу сам, только не 32 записи, а 10:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE m1(
  x1 INTEGER NOT NULL primary key,
  x2 INTEGER NOT NULL,
  x3 VARCHAR ( 100 )
);

INSERT INTO m1 values
  ( 0 , 1 ,'aaa'),
  ( 1 , 1 ,'aaa'),
  ( 2 , 1 ,'aaa'),
  ( 3 , 1 ,'aaa'),
  ( 4 , 1 ,'aaa'),
  ( 5 , 1 ,'aaa'),
  ( 6 , 1 ,'aaa'),
  ( 7 , 1 ,'aaa'),
  ( 8 , 1 ,'aaa'),
  ( 9 , 1 ,CAST(NULL AS VARCHAR( 10 )))
;
create index mxx on m1(x3);
runstats on table vvm.m1 with distribution and detailed indexes all; 

сменил в CC тип поля x3 на not null. Да, IBM-еры до сих пор не пофиксили проставление запятой вместо необходимой точки (даже в FP10), но никакой "проблемы FIRSTKEYCARD=32" не заметил, равно как и "проблемы FIRSTKEYCARD=10".

Может, вы хотите, чтобы было 31 и 9 соответственно? И не надейтесь - это не ошибка, а фича, описанная в документации. Хотите правильных значений - пускайте runstats.
...
Рейтинг: 0 / 0
03.09.2005, 03:00
    #33249617
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Вот, только что проверил это же на MS SQL Server, и эта система все сделала правильно, не допустила такого изменения таблицы.
...
Рейтинг: 0 / 0
03.09.2005, 03:03
    #33249618
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Короче, похоже, Майкрософт ругают совершенно необоснованно, в чем и не приходилось сомневаться, вот кого надо разделить на несколько компаний так это IBM, так как они похоже давят своим монополизмом, а качество продуктов, не самое лучшее.
...
Рейтинг: 0 / 0
03.09.2005, 03:06
    #33249619
Extraterrestrial_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Хотя, возможно, что DB2 вылечится с неким паком, сейчас докачаю...
...
Рейтинг: 0 / 0
03.09.2005, 13:27
    #33249766
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Когда и как она "DB2 только ругнулась на FIRSTKEYCARD=32"?
...
Рейтинг: 0 / 0
03.09.2005, 13:28
    #33249768
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
Банальный UPDATE, ругаться просто не на что (если исправлена проблема с запятыми).
...
Рейтинг: 0 / 0
03.09.2005, 13:42
    #33249782
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
ExtraterrestrialВот, только что проверил это же на MS SQL Server, и эта система все сделала правильно, не допустила такого изменения таблицы.
Как я понимаю, MS SQL выполнил это "в одно действие".

DB2 Control Center же (используя некую хранимую процедуру), создает скрипт и выполняет его. Править скрипт (как это сделано в Quest Central) не даёт. У меня возникла безумная мысль - уж не запатентовал ли Quest Software сам принцип деланья и правки скриптов, потому IBM и сделала это через задницу? Но нет, в других местах есть примеры правильного подхода (скажем, при настройке репликации можно сделать скрипт, исправить его и запустить; с другой стороны, не везде и при настройке репликации так).

Итак, о том, что некоторые строки не удовлетворяют constraint'у, DB2 не знает. Хранимая процедура сделала скрипт и выполнила его, некоторые строки потерялись, когда LOAD загружал данные, но всё это - ваша проблема. Раньше (в предыдущих версиях DB2) не было даже такого.

Если уж IBM за столько времени не исправила очевидную ошибку с decimal separator, не надейтесь, что изменение структуры таблицы с очередным фикспаком начнёт работать по-другому.

Вот в следующей версии DB2, по слухам, будет более мощный ALTER TABLE - тогда, наверное, он будет вести себя так, как вы ожидали.
...
Рейтинг: 0 / 0
03.09.2005, 13:50
    #33249785
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
ExtraterrestrialКороче, похоже, Майкрософт ругают совершенно необоснованно, в чем и не приходилось сомневаться, вот кого надо разделить на несколько компаний так это IBM, так как они похоже давят своим монополизмом, а качество продуктов, не самое лучшее.

IBM совсем не монополия на рынке БД. Oracle куда больше похожа на монополию, и, кстати, там есть куча своих проблем (а с MS SQL я дела почти не имел и не знаю состояния дел на текущий момент). Проблемы с управляющими утилитами типа DB2 Control Center лично для меня вполне привычны ;-). Не за CC мы ценим DB2 ("мы" - т.е. те, которые ценят).
...
Рейтинг: 0 / 0
03.09.2005, 13:58
    #33249791
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема FIRSTKEYCARD=32
У вас DB2 купленная, с support'ом? Оформите APAR.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема FIRSTKEYCARD=32 / 25 сообщений из 51, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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