цикл внутри хранимых процедур - PullRequest
0 голосов
/ 27 декабря 2011

Я пишу триггер в DB2.Внутри этого я хотел использовать петлю.Это делается для перебора набора значений, возвращаемых из оператора select.Как это может быть сделано?Кто-нибудь, пожалуйста, поделитесь учебником или ссылкой, которая объясняет это.И нормально ли иметь вложенный цикл?

1 Ответ

0 голосов
/ 27 декабря 2011

Вы можете использовать курсор в вашем триггере:

http://en.wikipedia.org/wiki/Cursor_%28databases%29

Простой пример курсора выглядит так:

DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
DECLARE p_sum INTEGER;
SET p_sum = 0;
DECLARE p_sal INTEGER;

DECLARE c CURSOR FOR SELECT SALARY FROM EMPLOYEE;
OPEN c;

FETCH FROM c INTO p_sal;

WHILE(SQLSTATE = '00000') DO
   SET p_sum = p_sum + p_sal;
   FETCH FROM c INTO p_sal; 
END WHILE;

CLOSE c;
...