powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема FIRSTKEYCARD=32
51 сообщений из 51, показаны все 3 страниц
Проблема FIRSTKEYCARD=32
    #33241079
Extraterrestrial_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь опять поменять атрибуты таблицы и опять ошибка, которую 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
Проблема FIRSTKEYCARD=32
    #33241091
Extraterrestrial_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это после замены руками запятых на точки, еще вылезла беда
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33241233
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
а изначально какой statement был?
alter table чего-там?
Ну чтобы повторить ошибку
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33241328
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем тебе это нужно объясни.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33241356
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня из DB2 Control Center QuestCentral, DbVisualiser, DB2 CLP все работает, правда на другой таблице. Но это не важно
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33241516
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
чё-то я не пойму, что делать надо, чтобы ошибку повторить.
делаю
db2 alter table emp_resume alter column resume_format set data type varchar(11)
отрабатывает.
Или чего-то другое надо делать, и я в тему не въехал?
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33241634
Extraterrestrial_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, я понял, в чем дело было, просто DB2 это изменение пропустила, хотя нельзя было. Я изменил атрибут, что он NULL не допускает, а в одной строке этой таблицы он был NULL. Поэтому, наверное, при изменении свойств атрибута, когда DB2 генерит кучу запросов автоматически (в том числе и тот, что я выше указал), эта ошибка и вылезла. Хотя вообще по правилам DB2 не должна даже была начать эту процедуру, если есть с NULL хотя бы одна запись.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33242114
Фотография Эстонский голем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExtraterrestrialКстати, я понял, в чем дело было, просто DB2 это изменение пропустила, хотя нельзя было. Я изменил атрибут, что он NULL не допускает, а в одной строке этой таблицы он был NULL. Поэтому, наверное, при изменении свойств атрибута, когда DB2 генерит кучу запросов автоматически (в том числе и тот, что я выше указал), эта ошибка и вылезла. Хотя вообще по правилам DB2 не должна даже была начать эту процедуру, если есть с NULL хотя бы одна запись.
ну и что и ничего в этом поучительного проблемы ребенка за комьютером
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33242216
Extraterrestrial_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Честно говоря, я не в курсе твоих проблем. А сколько тебе лет мальчик?
Меня интересует (это уже не к детям обращение) на самом деле данный вопрос в более широком плане, а часто ли DB2 так себя ведет и не может ли подобное привести вообще к потере данных, даже без возникновения той ошибки (в принципе, она была некритической).

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

Хорошо постараюсь. У меня есть таблица: три колонки, одна из которых в отличие от первых двух имеет свойство Nullable в значении Yes. Я его меняю на No. Таблица имеет 32 строки, только для одной из которых в этой колонке содержится NULL. Соответственно по идее DB2 не должна пропустить такое изменение, но она начинает стандартную процедуру изменения (её описывать?): первые три и пятый шаги выполняет, а в 4-ом (Restore table statistics and re-create dependent objects) происходит некритическая ошибка "FIRSTKEYCARD=32". Вот и все. В итоге я получаю измененную таблицу.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33244900
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
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
Проблема FIRSTKEYCARD=32
    #33246238
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
Проблема FIRSTKEYCARD=32
    #33249453
Фотография Эстонский голем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExtraterrestrialЧестно говоря, я не в курсе твоих проблем. А сколько тебе лет мальчик?
Меня интересует (это уже не к детям обращение) на самом деле данный вопрос в более широком плане, а часто ли DB2 так себя ведет и не может ли подобное привести вообще к потере данных, даже без возникновения той ошибки (в принципе, она была некритической).

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

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

А по-моему, есть, иначе бы ты сюда писал по делу, а не по зависти и злобству, но я не психоаналитик, у меня нет времени тебя анализировать, сорри. Просто советую пойти и хорошо развлечься, найти там гёрлиц повеселей и погорячей :-) В общем, отдохни душой и телом эстонский парень, расслабся :-)
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33249616
Extraterrestrial_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Речь идет о том, что по идее не должно было пройти такое изменение таблицы, если в ней есть строки, которые противоречат новым ограничениям. Или не так? Я просто не так уж и много работал с реляционками (больше с другим продуктом 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
Проблема FIRSTKEYCARD=32
    #33249617
Extraterrestrial_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, только что проверил это же на MS SQL Server, и эта система все сделала правильно, не допустила такого изменения таблицы.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33249618
Extraterrestrial_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче, похоже, Майкрософт ругают совершенно необоснованно, в чем и не приходилось сомневаться, вот кого надо разделить на несколько компаний так это IBM, так как они похоже давят своим монополизмом, а качество продуктов, не самое лучшее.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33249619
Extraterrestrial_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя, возможно, что DB2 вылечится с неким паком, сейчас докачаю...
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33249766
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда и как она "DB2 только ругнулась на FIRSTKEYCARD=32"?
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33249768
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Банальный UPDATE, ругаться просто не на что (если исправлена проблема с запятыми).
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33249782
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Проблема FIRSTKEYCARD=32
    #33249785
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExtraterrestrialКороче, похоже, Майкрософт ругают совершенно необоснованно, в чем и не приходилось сомневаться, вот кого надо разделить на несколько компаний так это IBM, так как они похоже давят своим монополизмом, а качество продуктов, не самое лучшее.

IBM совсем не монополия на рынке БД. Oracle куда больше похожа на монополию, и, кстати, там есть куча своих проблем (а с MS SQL я дела почти не имел и не знаю состояния дел на текущий момент). Проблемы с управляющими утилитами типа DB2 Control Center лично для меня вполне привычны ;-). Не за CC мы ценим DB2 ("мы" - т.е. те, которые ценят).
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33249791
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас DB2 купленная, с support'ом? Оформите APAR.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33249797
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я полагаю, что пустячок с запятой был бы давно поправлен, но на письма в ньюсгруппы IBM-ерам наплевать - надо действовать только официальным путём.

Тогда как пропадание строк, скорее всего, в этой версии останется навсегда. Я не помню, можно ли откатить изменения. Если можно, то вы должны посмотреть результат выполнения LOAD, и откатить, если написано что-нибудь типа X rows rejected. Если невозможно, то надо обратиться в support и писать ещё один APAR.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251162
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Egor - я же показал, как сработало alter table - абсолютно адекватно и правильно.
Ну а пассаж по поводу пустой траты времени и GUI - вы забыли добавить IMHO и никогда не работали с кучей удаленных баз по плохим каналам.
А любой канал может стать плохим внезапно (imho)
У меня такое случалось.

Если вы нашли баг, то давайте зарегистрируем его, чтоб пофиксксилось.
Я могу зарегистрировать PMR, если повторю у себя ошибку.
Дайте мне последовательность шагов, приводящих к ошибке.
Эмоции при этом можете постараться держать при себе.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251165
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Victor - можете пояснить по поводу "пропадания строк" и rejected rows ?
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251222
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егор вы слишком эмоциональны. Ни у кого кто попытался заняться вашей проблемой
сделать подобное не получилось. Так что тут пенять надо на себя или приводить порядок действий который приводит к ошибке. Знания MS SQL здесь вам не помогут.
Не надо думать, что то что в одной БД делается определенным образом во всех остальных выглядит так же.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251456
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvVictor - можете пояснить по поводу "пропадания строк" и rejected rows ?
Ну как же. Делаем колонку NOT NULL - и строчка, содержащая NULL, пропала. LOAD не загрузил.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251476
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно, alter table ... check ( ) не имеет такой проблемы. Имеет смена типа через CC. Но ведь экономия ширины строки в байт! ;-)

(И дополнительная информация для оптимизатора).
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251502
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvEgor - я же показал, как сработало alter table - абсолютно адекватно и правильно.
[...]
Если вы нашли баг, то давайте зарегистрируем его, чтоб пофиксксилось.
Я могу зарегистрировать PMR, если повторю у себя ошибку.
Дайте мне последовательность шагов, приводящих к ошибке.
Эмоции при этом можете постараться держать при себе.

Проблема в том, что alter table даже в 8-й версии не покрывает всех важных случаев.

Quest Central в таких случаях строит скрипт с выгрузкой данных в файл, удалением таблицы, созданием таблицы заново и загрузкой данных. Скрипт можно подправить перед запуском.

CC же в версии 8 делает то же самое, но не даёт подправить скрипт, запускает его "молча" и даёт подправить только те шаги, которые, по его мнению, не удались.

Не могли бы вы зарегистрировать PMR по поводу смешной ошибки с запятой?
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251552
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Victor -

Не понял про LOAD. Можно по потробнее.
Я понял, что если сделать alter table и поле сделать NOT NULL, то LOAD не загрузит строки с NULL. Он даже может их в отдельную таблицу поместить. Я не пойму, что здесь неправильно и как надо?

Далее, я понял, что есть проблемы с... хм. уже наверное и не alter table, а изменением таблицы в Control Center. Сейчас буду пробовать.

Не понял по поводу запятых - ну то есть последовательность шагов для воспроизводства проблемы/ошиюки.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251648
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvVictor -
Не понял про LOAD. Можно по потробнее.
Я понял, что если сделать alter table и поле сделать NOT NULL, то LOAD не загрузит строки с NULL. Он даже может их в отдельную таблицу поместить. Я не пойму, что здесь неправильно и как надо?

Далее, я понял, что есть проблемы с... хм. уже наверное и не alter table, а изменением таблицы в Control Center. Сейчас буду пробовать.


Именно о проблеме CC и идёт речь. Запустите скрипт на создание таблицы, который я привёл, попробуёте затем сменить тип атрибута на NOT NULL, и увидите.

ggv
Не понял по поводу запятых - ну то есть последовательность шагов для воспроизводства проблемы/ошиюки.

http://sql.ru/forum/actualthread.aspx?tid=211144

Когда будете воспроизводить в CC то, о чём речь шла выше, обязательно наткнётесь. Естественно, если у locale десятичный разделитель - запятая.

patch2=15 у меня отродясь не работал (правда, последний раз я проверял давно) - я не сильно беспокоился, поскольку мог поправить внутри своих приложений yf VA Smalltalk, но на чужих это может быть серьезно.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251730
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Victor - я наверное туплю, так как в том топике я и не понял, что сделать, чтобы получить ошибку с запятой.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251819
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Еле нашел в db2cc это место с галочкой NULLABLE, изменение которой приводит к выполнению такого вот statement -
CALL SYSPROC.ALTOBJ ( 'APPLY_CONTINUE_ON_ERROR', 'CREATE TABLE GGV.TEST ( ID INTEGER NOT NULL , "NAME" VARCHAR (5) NOT NULL ) IN USERSPACE1 ', -1, ? );
который у меня вывалился с
SQL0443N Routine "SYSPROC.ALTOBJ" (specific name "ALTOBJ") has returned an
error SQLSTATE with diagnostic text "SQL1131". SQLSTATE=38553

И я еще раз с удовлетворением отметил, шо таки я не зра не использую графических утилит, и шо еще на несколько лет можно забить на них.
Стоко ползаний мышой по экрану, чтобы вот такое получить......
И это называется удобно....
:)
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251873
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понимаю я, как это можно не понять.

Вот я прогнал свой скрипт и получил 10-строчную таблицу.

Теперь пошёл в CC и поправил свойство поля X3 - убрал галочку с Nullable.

На Show SQL мне показали:
Код: plaintext
1.
2.
3.
4.
CONNECT TO TICKPROC;
CALL SYSPROC.ALTOBJ ( 'APPLY_CONTINUE_ON_ERROR', 'CREATE TABLE VVM.M1 ( X1 INTEGER  NOT NULL , X2 INTEGER  NOT NULL , X3 VARCHAR (100)  NOT NULL   ) IN USER16 ', - 1 , ? );
;
CONNECT RESET;

Нажал OK. Мне сказали:

CCThe table and its related objects will be dropped and re-created.

Changing the definition of a column attribute involves a LOAD operation. If the database is recoverable, a load copy will be taken for the table being altered. The load copy will be saved as VVM.M1_table.dat. You can delete the load copy file once a backup has been taken for all the related tablespaces.

Would you like to proceed?


Нажал Yes.

После некоторого ожидания напротив всех пунктов появляются галочки, кроме "Restore table statistics and...".

Жму OK и получаю...
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251897
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
DROP INDEX "VVM"."MXX";
RENAME TABLE "VVM"."M1" TO T20050905_162653;
SET SESSION AUTHORIZATION VVM      ALLOW ADMINISTRATION;
CREATE TABLE VVM.M1 ( X1 INTEGER  NOT NULL , X2 INTEGER  NOT NULL , X3 VARCHAR ( 100 )  NOT NULL   ) IN USER16;
ALTER TABLE "VVM     "."M1" 
	ADD PRIMARY KEY
		("X1");
SET SESSION AUTHORIZATION VVM      ALLOW ADMINISTRATION;
CREATE INDEX "VVM     "."MXX" ON "VVM     "."M1" 
		("X3" ASC);
UPDATE SYSSTAT.TABLES
SET CARD= 10 ,
    NPAGES= 1 ,
    FPAGES= 1 ,
    OVERFLOW= 0 ,
    ACTIVE_BLOCKS= 0 
WHERE TABNAME = 'M1' AND TABSCHEMA = 'VVM     ';
UPDATE SYSSTAT.TABLES
SET CARD= 10 ,
    NPAGES= 1 ,
    FPAGES= 1 ,
    OVERFLOW= 0 ,
    ACTIVE_BLOCKS= 0 
WHERE TABNAME = 'M1' AND TABSCHEMA = 'VVM     ';
SET COLCARD= 10 ,
    NUMNULLS= 0 ,
    SUB_COUNT=- 1 ,
    SUB_DELIM_LENGTH=- 1 ,
    HIGH2KEY='8',
    LOW2KEY='1',
    AVGCOLLEN= 4 
WHERE COLNAME = 'X1' AND TABNAME = 'M1' AND TABSCHEMA = 'VVM';
;
и так далее,
где
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
UPDATE SYSSTAT.INDEXES
SET NLEAF= 1 ,
    NLEVELS= 1 ,
    FIRSTKEYCARD= 2 ,
    FIRST2KEYCARD=- 1 ,
    FIRST3KEYCARD=- 1 ,
    FIRST4KEYCARD=- 1 ,
    FULLKEYCARD= 2 ,
    CLUSTERFACTOR=- 1 , 000000 ,
    CLUSTERRATIO= 100 ,
    SEQUENTIAL_PAGES= 0 ,
    DENSITY= 0 ,
    AVERAGE_SEQUENCE_GAP= 0 , 000000 ,
    AVERAGE_SEQUENCE_FETCH_GAP=- 1 , 000000 ,
    AVERAGE_SEQUENCE_PAGES= 0 , 000000 ,
    AVERAGE_SEQUENCE_FETCH_PAGES=- 1 , 000000 ,
    AVERAGE_RANDOM_PAGES= 1 , 000000 ,
    AVERAGE_RANDOM_FETCH_PAGES=- 1 , 000000 ,
    NUMRIDS= 10 ,
    NUMRIDS_DELETED= 0 ,
    NUM_EMPTY_LEAFS= 0 
WHERE INDNAME = 'MXX' AND INDSCHEMA = 'VVM     '
      AND TABNAME = 'M1' AND TABSCHEMA = 'VVM'
инвалидно (неправильный decimal separator)

А при загрузке потерялась строка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
LOAD FROM CSR20050905_162653 OF CURSOR  MESSAGES "C:\SQLLIB\DB2\tmp\T20050905_162653"  REPLACE INTO "VVM"."M1" ( "X1", "X2", "X3" ) FOR EXCEPTION "VVM"."T20050905_162653_EXCEPTION"  STATISTICS YES  NONRECOVERABLE  INDEXING MODE REBUILD

SQL1193I  The utility is beginning to load data from the SQL statement "SELECT 
"X1" ,  "X2" ,  "X3"  FROM "VVM"."T20050905_162653" ".

SQL3500W  The utility is beginning the "LOAD" phase at time "05.09.2005 
16:27:23.614340".

SQL3519W  Begin Load Consistency Point. Input record count = "0".

SQL3520W  Load Consistency Point was successful.

SQL3116W  The field value in row "10" and column "3" is missing, but the 
target column is not nullable.

SQL3185W  The previous error occurred while processing data from row "10" of 
the input file.

SQL3110N  The utility has completed processing.  "10" rows were read from the 
input file.

SQL3519W  Begin Load Consistency Point. Input record count = "10".

SQL3520W  Load Consistency Point was successful.

SQL3515W  The utility has finished the "LOAD" phase at time "05.09.2005 
16:27:24.477014".

SQL3500W  The utility is beginning the "BUILD" phase at time "05.09.2005 
16:27:24.532538".

SQL3213I  The indexing mode is "REBUILD".

SQL3515W  The utility has finished the "BUILD" phase at time "05.09.2005 
16:27:25.033297".

SQL3107W  There is at least one warning message in the message file.

...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33251944
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvЕле нашел в db2cc это место с галочкой NULLABLE, изменение которой приводит к выполнению такого вот statement -
CALL SYSPROC.ALTOBJ ( 'APPLY_CONTINUE_ON_ERROR', 'CREATE TABLE GGV.TEST ( ID INTEGER NOT NULL , "NAME" VARCHAR (5) NOT NULL ) IN USERSPACE1 ', -1, ? );
который у меня вывалился с
SQL0443N Routine "SYSPROC.ALTOBJ" (specific name "ALTOBJ") has returned an
error SQLSTATE with diagnostic text "SQL1131". SQLSTATE=38553


Тревожный признак. Может, вы не перебиндили чего-нибудь при фикспаке, или db2updv8 не запускали?


И я еще раз с удовлетворением отметил, шо таки я не зра не использую графических утилит, и шо еще на несколько лет можно забить на них.
Стоко ползаний мышой по экрану, чтобы вот такое получить......
И это называется удобно....
:)

В Quest Central это было сделано очень удобно.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252017
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL0443N Routine "SYSPROC.ALTOBJ" (specific name "ALTOBJ") has returned an
error SQLSTATE with diagnostic text "SQL1131". SQLSTATE=38553

Говорит о том, что логин, под которым вы законнектились к базе не является членом группы "Администраторы" на компе, где установлена DB2

Такие же ошибки вылезают при исполнении табличных функций SNAP* при тех же условиях.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252053
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
да нет, это не вопрос авторизации.
Я таки кажется повторил ошибку, но это только кажется.
Так как я использую Ion windows manager, а в нем всплывающие окна некоретного дизайна не отображаются корректо, то я не получил вывода об ошибках, только увидел, что в таблице таки не стало строк с NULL.

Но таки глядя внимательно на текст генерируемого скрипта -
CALL SYSPROC.ALTOBJ ( ' APPLY_CONTINUE_ON_ERROR ', 'CREATE TABLE GGV.TEST ( ID INTEGER NOT NULL , "NAME" VARCHAR (5) NOT NULL ) IN USERSPACE1 ', -1, ? );
мне кажется, что результат ожидаем. Вам наверное больше подошел бы APPLY_STOP_ON_ERROR

Далее - никакой проблемы с запятой я не видел.

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

А ошибка таки была с непробинденными файлами в базе smaple этой инстанции, а не авторизация.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252081
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
О!
С помошью беспорядочно-лихорадочного кнопания мышой по всему, чему можно, я таки получил ошибку!!!
Ну ту, с шестью нулями и decimal разделителем!
Но я не берусь повторить и описать это для PMR - это выше моих сил.......
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252097
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Что я заметил, так это то, что LOAD во время этого скрипта по изменению NULLABLE поля таблицы использует FOR EXCEPTION <table>
Вот туда он и должен поместить все строки, в которых поле NULL.
Не, руками и удобнее, и быстрее, и понятнее, imho
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252152
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvЧто я заметил, так это то, что LOAD во время этого скрипта по изменению NULLABLE поля таблицы использует FOR EXCEPTION <table>
Вот туда он и должен поместить все строки, в которых поле NULL.
Не, руками и удобнее, и быстрее, и понятнее, imho

Это просто-напросто неправда. Ручная смена атрибута nullable потребует скрипта из десятков SQL-выражений, особенно много при наличии foreign keys, триггеров, view.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252181
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvО!
С помошью беспорядочно-лихорадочного кнопания мышой по всему, чему можно, я таки получил ошибку!!!
Ну ту, с шестью нулями и decimal разделителем!
Но я не берусь повторить и описать это для PMR - это выше моих сил.......

Ну вот, а ещё говорите, что скрипты вручную писать любите.

"При попытке изменения атрибутов таблицы через Control Center, приводящей к вызову CALL SYSPROC.ALTOBJ (например, при смене nullable на не-nullable), происходит ошибка такая-то. Она возникает на этапе восстановления статистики и заключается в следующем: (sql-текст прилагается); неправильный decimal separator". Полагаю, этого должно хватить.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252196
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggv
[...]
Но таки глядя внимательно на текст генерируемого скрипта -
CALL SYSPROC.ALTOBJ ( ' APPLY_CONTINUE_ON_ERROR ', 'CREATE TABLE GGV.TEST ( ID INTEGER NOT NULL , "NAME" VARCHAR (5) NOT NULL ) IN USERSPACE1 ', -1, ? );
мне кажется, что результат ожидаем. Вам наверное больше подошел бы APPLY_STOP_ON_ERROR


Но CC не позволит это сменить.


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


Настоятельно предлагаю попробовать alter того же самого через Quest Central. Он берет на себя самую гнусную работу и дает возможности для ручного вмешательства. (Мои слова не означают, что весь QC хорош).
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252235
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Не, ну как я уже говорил, на достаточно длительный срок я опять "завязал" с GUI
До описания проблемы надо бы опять ее повторить, на что у меня терпежу просто не хватит.
Если опишите (на английском) то я зарегистрирую PMR, могу от вас если предоставите свои зарегистрированного клиента данные.

По поводу смены поля при всяческих там условиях - делалось неоднократно. И for exception table использовалась всегда (поначалу трудно было ее сделать правильно), и данные в ней изучались, и решение по результатам изучения принимались, и так далее, и все на больших объемах, и все на удаленных данных, и все по каналам доступа которые бывают в разное время разные, и иногда такое случалось в результате всяческих "бедствий" с бизнес точки зрения, и прочая, и прочая...
У меня уже коллекция скриптов на все случаи жизни огромная, щас вот для Q Replication делаю. (на что только не пойдеш, лишь бы gui не использовать)
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252250
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Да, кстати, я нигде не говорил, что я люблю скрипты писать.
Я, вообще-то, жену люблю. И дочку.
А скрипты в отношении к базе данных я признаю как наиболее удобный мне способ работы.
Я и мышу считаю неудобной в использовании, по-этому у меня Ion и стоит.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252293
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvНе, ну как я уже говорил, на достаточно длительный срок я опять "завязал" с GUI
До описания проблемы надо бы опять ее повторить, на что у меня терпежу просто не хватит.
Если опишите (на английском) то я зарегистрирую PMR, могу от вас если предоставите свои зарегистрированного клиента данные.


Проблема. Мой английский read only.

(на что только не пойдеш, лишь бы gui не использовать)

Тут у меня в голове полезли разные мысли, которые я не рискну здесь писать.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252327
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvДа, кстати, я нигде не говорил, что я люблю скрипты писать.
Я, вообще-то, жену люблю. И дочку.


Вариант ответа 1: И, очевидно, либо любите писать скрипты, либо страдаете gui-фобией (или одновременно то и то).

Вариант ответа 2: А _как_ вы любите дочку? Неужели вступаете в половые сношения?

Я думаю, не надо уподобляться пэтэушникам, не могущим не хихикать при слове "член". Слово "любить" имеет огромное количество приложений и не сводимо только к половым сношениям, или только к эмоциям к людям.
...
Рейтинг: 0 / 0
Проблема FIRSTKEYCARD=32
    #33252381
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
скорее всего, у меня таки gui-фобия. Но она не на пустом месте возникла, я таки мигрировал в консоль с gui. вынужденная такая фобия. Но мне понравилось, и назад не тянет.

Полностью согласен с многогранностью слова "любить" - великий и могучий, как никак.
Но я не могу сказать, что люблю писать скрипты.
Мне просто так удобнее.
Это что-то из разряда - написанная мысль, это не тоже самое, что, как там, озвученная, что ли.
Короче, пока скрипт пишешь, несколько раз обдумаешь, поправишь, меньше шансов на ошибку, если сравнить с кликанием мышой. Но это imho.
...
Рейтинг: 0 / 0
51 сообщений из 51, показаны все 3 страниц
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема FIRSTKEYCARD=32
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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