powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2XMLFUNCTIONS.XMLUPDATE Косячит
2 сообщений из 2, страница 1 из 1
DB2XMLFUNCTIONS.XMLUPDATE Косячит
    #34607604
Hektor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
CREATE PROCEDURE UPDATE_PROJECT()
    LANGUAGE SQL
BEGIN ATOMIC
	DECLARE RC INT;
	DECLARE stmt VARCHAR( 4096 );
	DECLARE SEQ_1 INT;
	DECLARE SEQ_2 INT;
	DECLARE SEQ_3 INT;
	DECLARE UPD VARCHAR( 255 );	DECLARE SQLCODE INT default  0 ;
	DECLARE UNDO handler for sqlexception
		BEGIN
			SET RC=SQLCODE;
			INSERT INTO DASUSR1.ERROR_LOG VALUES (DATE(CURRENT DATE), TIME(CURRENT TIME), RC, stmt);
		END;
      		
--	Получаем автоинкремент
	
	VALUES NEXTVAL FOR project_seq into SEQ_1;
	VALUES NEXTVAL FOR page_seq into SEQ_2;
	VALUES NEXTVAL FOR template_seq into SEQ_3;
	
--	Меняем значения project_id и т.п. на автоинкременты
	SET UPD = CONCAT('<updates><update action="replace" col="1" path="/projects/project/@id">', CAST(CAST(SEQ_1 AS CHAR( 6 )) AS VARCHAR( 6 )));
	SET UPD = CONCAT(UPD, '</update></updates>');
	Call DB2XMLFUNCTIONS.XMLUPDATE (UPD,'Select TMP from DASUSR1.TEMP','update DASUSR1.TEMP set TMP=?',RC,stmt);

	SET UPD = CONCAT('<updates><update action="replace" col="1" path="/projects/project/@main_page">', CAST(CAST(SEQ_2 AS CHAR( 6 )) AS VARCHAR( 6 )));
	SET UPD = CONCAT(UPD, '</update></updates>');
	Call DB2XMLFUNCTIONS.XMLUPDATE (UPD,'Select TMP from DASUSR1.TEMP','update DASUSR1.TEMP set TMP=?',RC,stmt);	
	
	SET UPD = CONCAT('<updates><update action="replace" col="1" path="/projects/page/@id">', CAST(CAST(SEQ_2 AS CHAR( 6 )) AS VARCHAR( 6 )));
	SET UPD = CONCAT(UPD, '</update></updates>');
	Call DB2XMLFUNCTIONS.XMLUPDATE (UPD,'Select TMP from DASUSR1.TEMP','update DASUSR1.TEMP set TMP=?',RC,stmt);
	
	SET UPD = CONCAT('<updates><update action="replace" col="1" path="/projects/page/@project">', CAST(CAST(SEQ_1 AS CHAR( 6 )) AS VARCHAR( 6 )));
	SET UPD = CONCAT(UPD, '</update></updates>');
	Call DB2XMLFUNCTIONS.XMLUPDATE (UPD,'Select TMP from DASUSR1.TEMP','update DASUSR1.TEMP set TMP=?',RC,stmt);
	
	SET UPD = CONCAT('<updates><update action="replace" col="1" path="/projects/page/@template">', CAST(CAST(SEQ_3 AS CHAR( 6 )) AS VARCHAR( 6 )));
	SET UPD = CONCAT(UPD, '</update></updates>');
	Call DB2XMLFUNCTIONS.XMLUPDATE (UPD,'Select TMP from DASUSR1.TEMP','update DASUSR1.TEMP set TMP=?',RC,stmt);
	
	
	SET UPD = CONCAT('<updates><update action="replace" col="1" path="/projects/template/@id">', CAST(CAST(SEQ_3 AS CHAR( 6 )) AS VARCHAR( 6 )));
	SET UPD = CONCAT(UPD, '</update></updates>');
	Call DB2XMLFUNCTIONS.XMLUPDATE (UPD,'Select TMP from DASUSR1.TEMP','update DASUSR1.TEMP set TMP=?',RC,stmt);
		
	SET UPD = CONCAT('<updates><update action="replace" col="1" path="/projects/template/@project">', CAST(CAST(SEQ_1 AS CHAR( 6 )) AS VARCHAR( 6 )));
	SET UPD = CONCAT(UPD, '</update></updates>');
	Call DB2XMLFUNCTIONS.XMLUPDATE (UPD,'Select TMP from DASUSR1.TEMP','update DASUSR1.TEMP set TMP=?',RC,stmt);
	
	
END @

CALL UPDATE_PROJECT()@

Данный код полностью снес всё что было в базе данных, вплоть до схем...
В чем дело?
...
Рейтинг: 0 / 0
DB2XMLFUNCTIONS.XMLUPDATE Косячит
    #34612517
Hektor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Методом научного тыка пришли к тому, что процедура выдает предупреждение на четвертом вызове DB2XMLFUNCTIONS.XMLUPDATE(............) и вышибает всё.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2XMLFUNCTIONS.XMLUPDATE Косячит
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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