Как отобразить сообщение об исключении из хранимой процедуры в 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;
/
Другие вопросы по тегам