Я очень новичок в хранимых процедурах. Я пытаюсь сделать хранимую процедуру, которая будет выполнять обновление, принимающее 2 входных параметра и возвращающее количество обновленных записей (в моем случае всегда 1).Сохраненная процедура возвращает обновленный счетчик записей?
Мне до сих пор удалось это сделать, но я не понимаю, как вернуть переменную после открытия курсора. Нужен ли курсор в моем случае? Пожалуйста, поправьте меня, если мой подход ошибочен.
CREATE PROCEDURE PAKRETST.FTUMODINST (IN GENFORTREATYSRNO INTEGER,IN GENFTMDPDUENO INTEGER, OUT NUMREC SMALLINT)
RESULT SETS 0 MODIFIES SQL DATA LANGUAGE SQL
P1:BEGIN
DELCARE strCmd VARCHAR(500);
DECLARE x CURSOR WITH RETURN TO CALLER FOR SL;
SET strCmd='UPDATE PAKRETST.UWFTMDPDUEDATES a where a.GENFORTREATYSRNO='||GENFORTREATYSRNO||'AND a.GENFTMDPDUENO='||GENFTMDPDUENO;
PREPARE SL FROM strCmd;
SET NUMREC= -- Stuck here --
RETURN;
END
;
Спасибо за ответ, это было очень полезно. Вы знаете, как вернуть параметр out в конце процедуры? Также является ли обязательным после обновления? –
После того, как процедура вернется, значение параметра OUT будет доступно в переменной, которую вы предоставили для этого параметра при вызове процедуры. Вы COMMIT после UPDATE, которое происходит в транзакции. В противном случае COMMIT не требуется. – 2010-08-18 07:32:58
Спасибо, Джефф, ваш ответ был так полезен =) –