Как отобразить сообщение об исключении из хранимой процедуры в Crystal Reports?
У меня есть приложение с Crystal Report, которое использует хранимую процедуру от Oracle(я использую Oracle 10g Express Edition). На данный момент, когда исключение выдается из хранимой процедуры, скажем, исключение "деление на ноль", сообщение отображается в окне предупреждения в CR. Я хочу отобразить его в отчете, а не в данных. Есть ли способ сделать это?
EXCEPTION
WHEN ZERO_DIVIDE THEN
raise_application_error(-20001, 'Division by zero exception');
Вот как я выкидываю исключение из хранимой процедуры. Затем я связал хранимую процедуру с Data Expert. Я использую REF CURSOR для возврата значения из хранимой процедуры в Crystal Report.
Заранее спасибо.
1 ответ
В Crystal Reports есть ли способ отловить исключения SQL? Если это так, вы можете получить код ошибки SQL и на основе кода ошибки вы можете отобразить сообщение, которое вы хотели бы.
Если нет, попробуйте следующий подход, то есть, чтобы вернуть код ошибки и сообщение об ошибке при возникновении исключения.
CREATE OR REPLACE PROCEDURE getemployees (
p_no IN employees.emp_number%TYPE,
rcursor OUT sys_refcursor,
return_message OUT VARCHAR2,
return_code OUT NUMBER
)
AS
BEGIN
OPEN rcursor FOR
SELECT *
FROM employees
WHERE emp_number = p_no;
return_message := NULL;
return_code := 0;
EXCEPTION
WHEN ZERO_DIVIDE
THEN
return_message := SQLERRM;
return_code := SQLCODE;
END getemployees;
/