Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Падает после первого COMMIT, подскАжите? / 6 сообщений из 6, страница 1 из 1
22.08.2014, 10:14
    #38726317
kT_________
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает после первого COMMIT, подскАжите?
Код: plsql
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
BEGIN
  DECLARE CUR_TIME TIMESTAMP;
  DECLARE CUR_TIME_MIN TIMESTAMP;
  DECLARE COUNTER BIGINT;

  SET COUNTER = 0;
  SET CUR_TIME = CURRENT TIMESTAMP;
  SET CUR_TIME_MIN = CUR_TIME - 1 MICROSECOND;
  FOR v3 AS
  c3 CURSOR FOR
  SELECT DISTINCT QW.CONT_EQUIV_ID oid, QW.ADMIN_CLIENT_ID cid, QW.CONT_ID cnt_id
  FROM SHEME.CONTEQUIV QW
  WHERE right(QW.ADMIN_CLIENT_ID, 8) = '_DELETED'
  DO
      UPDATE SHEME.CONTEQUIV
      SET ADMIN_CLIENT_ID = substr(ADMIN_CLIENT_ID, 1, instr(ADMIN_CLIENT_ID, '_DELETED')-1), LAST_UPDATE_DT = CURRENT TIMESTAMP
      WHERE CONT_EQUIV_ID = v3.oid;

      UPDATE SCHEME.H_CONTEQUIV
      SET H_END_DT = CUR_TIME_MIN
      WHERE CONT_EQUIV_ID = v3.oid AND H_END_DT IS NULL;
      INSERT INTO SHEME.H_CONTEQUIV (H_CONT_EQUIV_ID,
                                   H_ACTION_CODE,
                                   H_CREATED_BY,
                                   H_CREATE_DT,
                                   H_END_DT,
                                   CONT_EQUIV_ID,
                                   CONT_ID,
                                   ADMIN_SYS_TP_CD,
                                   ADMIN_CLIENT_ID,
                                   DESCRIPTION,
                                   LAST_UPDATE_DT,
                                   LAST_UPDATE_USER,
                                   LAST_UPDATE_TX_ID,
                                   PART_ID)
        SELECT CNT.CONT_EQUIV_ID, 'U', '_PATCH', CUR_TIME, NULL, CONT_EQUIV_ID,
          CONT_ID,
          ADMIN_SYS_TP_CD,
          ADMIN_CLIENT_ID,
          DESCRIPTION,
          LAST_UPDATE_DT,
          LAST_UPDATE_USER,
          LAST_UPDATE_TX_ID,
          PART_ID
        FROM SHEME.CONTEQUIV CNT
        WHERE CONT_EQUIV_ID = v3.oid;
    SET COUNTER = COUNTER + 1;


    IF (COUNTER = 20000) THEN
      SET COUNTER = 0;
      COMMIT;
    END IF;


  END FOR;
END;




Колллеги, подскажите, почему падает коммит?
Смотрел другие скрипты, с них вобщем-то и списал этот.
Всё один в один, а он после первого коммита падает, но 20000 апдейтит.
ЗАранее большое спасибо.
...
Рейтинг: 0 / 0
22.08.2014, 10:22
    #38726327
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает после первого COMMIT, подскАжите?
kT_________,

Это скрипт, не процедура?
А всё остальное - инсёртится и апдейтится, кроме COUNTER ?
...
Рейтинг: 0 / 0
22.08.2014, 10:47
    #38726355
CawaSPb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает после первого COMMIT, подскАжите?
kT_________,

потому что курсор не определё как WITH HOLD:
DECLARE CURSOR statement
...
Рейтинг: 0 / 0
22.08.2014, 11:14
    #38726387
kT_________
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает после первого COMMIT, подскАжите?
CawaSPb,

можно в двух словах, какой профит??
так понимаю что курсор типо не уходит из области видимости??? и остаётся существовать типо.. да??


и спасибо огромное, оч помогло!!
...
Рейтинг: 0 / 0
22.08.2014, 11:23
    #38726397
CawaSPb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает после первого COMMIT, подскАжите?
kT_________,

Там же ж написано:
Код: plaintext
1.
WITHOUT HOLD
    Does not prevent the cursor from being closed as a consequence of a commit operation. This is the default.

По умолчанию по коммиту курсор автоматически закрывается.


Есть ещё пара замечаний, но они могут быть не к месту вне контекста конкретных данных.
...
Рейтинг: 0 / 0
22.08.2014, 11:43
    #38726439
kT_________
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает после первого COMMIT, подскАжите?
CawaSPb,

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


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