You have a form that called a database stored procedure. You do not want processing to continue,
so immediately after the call to the stored procedure, you add the following code:
IF NOT FORM_SUCCESS THEN
MESSAGE (‘Stored Procedure failure’);
RAISE FORM_TRIGGER_FAILURE;
END IF;
You test the code and input some data that intentionally causes the stored procedure to fail.
However, the message that you defined does not appear. What are two possible reasons for this?
A.
You must handle database errorsinan exception clause of the trigger.
B.
You must test for FORM_FAILURE when testing for failure of a stored procedure.
C.
You must test for FORM_FATAL when testing for failure of a stored procedure.
D.
FORM_SUCCESS tests for failure of Forms built-ins, not stored procedures.
E.
You cannot test for failure of a stored procedure, because database errors are transparent to
Forms.
Explanation:
A: You should use DBMS_ERROR_CODE and DBMS_ERROR_TEXT in an ONERROR trigger to trap errors propagated from Oracle server from Forms.
Note: FORM_SUCCESS and FORM_TRIGGER_FAILURE
Either the FORM_SUCCESS built-in or the FORM_TRIGGER_FAILURE exception must be used
to handle all Forms errors. FORM_SUCCESS is a Boolean function that evaluates to TRUE or
FALSE depending on the success or failure of a Forms built-in. FORM_TRIGGER_FAILURE is an
exception that has to be raised to stop further processing whenever an error occurs or
FORM_SUCCESS evaluates to FALSE. The following sections describe their use in errormessage handling.