DBMS_DEBUG
DBMS_DEBUG is a PL/SQL interface to the PL/SQL debugger layer, Probe,
in the Oracle server.
This package is primarily intended
to implement server-side debuggers and it provides a way to debug server-side
PL/SQL program units.
To debug server-side code, you must
have two database sessions: one session to run the code in debug mode (the
target session), and a second session to supervise the target session (the
debug session).
The target session becomes available
for debugging by making initializing calls with DBMS_DEBUG. This marks the session so that the PL/SQL interpreter runs
in debug mode and generates debug events. As debug events are generated, they
are posted from the session. In most cases, debug events require return
notification: the interpreter pauses awaiting a reply.
Meanwhile, the debug session must
also initialize itself using DBMS_DEBUG: This tells it which target session to supervise. The debug
session may then call entry points in DBMS_DEBUG to read events that were posted from the target session and
to communicate with the target session
DBMS_ERRLOG
The DBMS_ERRLOG
package
provides a procedure that enables you to create an error logging table so that
DML operations can continue after encountering errors rather than abort and
roll back. This enables you to save time and system resources.
CREATE_ERROR_LOG Procedure
This procedure creates the error logging table needed to use the DML error
logging capability.LONG
, CLOB
, BLOB
,
BFILE
, and ADT
datatypes are not supported in the
columns.
Syntax
DBMS_ERRLOG.CREATE_ERROR_LOG (
dml_table_name IN VARCHAR2,
err_log_table_name IN VARCHAR2 := NULL,
err_log_table_owner IN VARCHAR2 := NULL,
err_log_table_space IN VARCHAR2 := NULL,
skip_unsupported IN BOOLEAN := FALSE);
Examples
First, create an error log table for
the channels table in
the SH schema, using the default name
generation.
Then, see all columns of the table channels:
SQL>
DESC channels
Name Null? Type
--------------------------- ------- -----
CHANNEL_ID NOT NULL CHAR(1)
CHANNEL_DESC NOT NULL VARCHAR2(20)
CHANNEL_CLASS
VARCHAR2(20)
Finally, see all columns of the
generated error log table. Note the mandatory control columns that are created
by the package:
SQL>
DESC ERR$_CHANNELS
Name Null? Type
----------------- ---- ----ORA_ERR_NUMBER$ NUMBER
ORA_ERR_MESG$ VARCHAR2(2000)
ORA_ERR_ROWID$ ROWID
ORA_ERR_OPTYP$ VARCHAR2(2)
ORA_ERR_TAG$ VARCHAR2(2000)
CHANNEL_ID VARCHAR2(4000)
CHANNEL_DESC VARCHAR2(4000)
CHANNEL_CLASS VARCHAR2(4000)
No comments:
Post a Comment