View the exhibit and examine the structure of the products table.
Examine the following code
Which statement is true when the procedure DELETE_DETAILS is invoked?
A.
It executes successfully but no error messages get recorded in the DEBUG_OUTPUT table
B.
It executes successfully and any error messages get recorded in the DEBUG_OUTPUT table.
C.
It gives an error because PRAGMA AUTONOMOUSJTRANSACTION can be used only in
packaged procedures.
D.
It gives an error because procedures containing PRAGMA AUTONOMOUS_TRANSACTION
cannot be called from the exception section.
Explanation:
B is ans
A
A
i tried this question.
no error message is recorded in the debug_output table
YES, IT’S A, IN EFFECT
it’s the rule, on contrary of a select statement, other dml don’t raise any exeception if the row in object is not found.
we have to remember that, but
you can manage this situation with implicit or explicit cursor like sql%notfound
very good collegues, we will learn
B
A
Substr(100) will remove message, because it will take message from 100 position
A
A subprogram marked with this pragma can do SQL operations and commit or roll back those operations, without committing or rolling back the data in the main transaction
The function SQLERRM returns the error message associated with its error-number argument. If the argument is omitted, it returns the error message associated with the current value of SQLCODE. SQLERRM with no argument is useful only in an exception handler. Outside a handler, SQLERRM with no argument always returns the normal, successful completion message. For internal exceptions, SQLERRM returns the message associated with the Oracle error that occurred. The message begins with the Oracle error code.
In any case B looks incorrect. Even if we consider that an error might occur, due to the substr only error message after the 100th character will get logged. This contradicts the option that any error message will get logged. Hence B is incorrect. So answer should be A
a