powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема FIRSTKEYCARD=32
25 сообщений из 51, страница 2 из 3
Проблема 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
25 сообщений из 51, страница 2 из 3
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема FIRSTKEYCARD=32
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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