Oracle DUMPDIANA
Version 23c

General Information
Library Note Morgan's Library Page Header
ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling complimentary technical Workshops on Database Security for the first 30 Oracle Database customers located anywhere in North America, EMEA, LATAM, or APAC that send an email to asra_us@oracle.com. Request a Workshop for your organization today.
Purpose This package makes possible a human-readable Diana dump.

The three supported output formats are the `traditional' indented tree format, the flat, ordered list of nodes, and the 'COG' format, also flat.
AUTHID DEFINER
Constants
Name Data Type Value
Printing Format
print_default_format BINARY_INTEGER 0
print_in_order BINARY_INTEGER 1
print_cog_format BINARY_INTEGER 2
print_tree_structured BINARY_INTEGER 3
Dependencies
DBMS_OUTPUT DUMPDIANA_LIB PIDL
DIUTIL    
Documented No
First Available Not known
Security Model Owned by SYS with no privileges granted
Source {ORACLE_HOME}/rdbms/admin/dumpdian.sql
SQL> @?/rdbms/admin/dumpdian.sql

Library created.

SP2-0808: Package created with compilation warnings
SP2-0810: Package Body created with compilation warnings

SQL> sho err
Errors for PACKAGE BODY DUMPDIANA:

LINE/COL ERROR
-------- -----------------------------------------------------------------
31/13 PLW-05004: identifier DUMP is also declared in STANDARD or is a
SQL builtin

52/22 PLW-06010: keyword "NAME" used as a defined name
73/13 PLW-05004: identifier DUMP is also declared in STANDARD or is a
SQL builtin
   
Subprograms
 
DUMP
Traverses the diana of a named library unit created by PL/SQL (eg: procedure/function/package-spec/package-body)

Overload 1
dumpdiana.dump(
aName        IN VARCHAR2,
lu_type      IN NUMBER         := sys.diutil.libunit_type_spec,
print_format IN BINARY_INTEGER := print_default_format);
SQL> exec dumpdiana.dump('UTL_FILE');
user: SYS

PL/SQL procedure successfully completed.
Procedure to traverse the diana rooted at a given node and output the Diana in human-readable format. This procedure would typically be used in conjunction with a debugger, which would be used to supply the node value.

Overload 2
dumpdiana.dump(
nod          IN sys.pidl.ptnod,
print_format IN BINARY_INTEGER := print_default_format);
SQL> exec dumpdiana.dump(0, dumpdiana.print_default_format);
Warning: Null input node to dump().

PL/SQL procedure successfully completed.

SQL> exec dumpdiana.dump(-1, dumpdiana.print_default_format);
BEGIN dumpdiana.dump(-1, dumpdiana.print_default_format); END;
*
ERROR at line 1:
ORA-01426: numeric overflow
ORA-06512: at "SYS.DUMPDIANA", line 5
ORA-06512: at "SYS.DUMPDIANA", line 20
ORA-06512: at "SYS.DUMPDIANA", line 37
ORA-06512: at line 1


SQL> exec dumpdiana.dump(1, dumpdiana.print_default_format);
ERROR:
ORA-03114: not connected to ORACLE
BEGIN dumpdiana.dump(1, dumpdiana.print_default_format); END;
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 14300
Session ID: 386 Serial number: 51458
 
NODECOUNT
Procedure to print a count of the number of nodes in the Diana of a named library unit

Overload 1
dumpdiana.node_count(
aName   IN VARCHAR2,
lu_type IN NUNMBER := sys.diutil.libunit_type_spec);
exec dumpdiana.node_count('UTL_FILE');
Procedure to print a count of the number of nodes in the Diana tree containing a given node.

Overload 2
dumpdiana.node_count(nod IN sys.pidl.ptnod);
exec dumpdiana.node_count(1);

Related Topics
Built-in Functions
Built-in Packages
What's New In 21c
What's New In 23c

Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2023 Daniel A. Morgan All Rights Reserved
  DBSecWorx