Следующая процедура (в Oracle 11g выпуск 1) принимает sql в качестве параметра и возвращает его код возврата.
Возвращает 0 в случае успеха
Возвращает 1, если не выполняется обновление или удаление не выполняется
Возвращает действительный код ошибки в случае ошибки.
Как я могу изменить приведенную ниже процедуру, чтобы вернуть мне другой выходной параметр, скажем "return_message", который будет содержать краткое описание внутреннего сообщения об ошибке оракула? В случае успеха, он должен сказать «успех», а в случае, если не было выполнено удаление / обновление, он должен сказать «nochange»
CREATE OR REPLACE PROCEDURE "demo"."run_demo"(v_sql IN VARCHAR2, return_code OUT number)
AS
i number;
BEGIN
return_code := 0;
execute immediate v_sql;
i := sql%rowcount;
IF (i<1)
THEN return_code := 1;
END IF;
EXCEPTION
WHEN OTHERS THEN
return_code := SQLCODE;
END;