Oracle DBMS_METADATA_BUILD
Version 26ai

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose Implements lower-level functions for defining heterogeneous object types
AUTHID CURRENT_USER
Constants
Name Data Type Value
TOP_LEVEL_TYPE NUMBER 0
DATATYPE_MIN NUMBER 1
DATATYPE_BOOLEAN NUMBER 1
DATATYPE_NUMERIC NUMBER 2
DATATYPE_TEXT NUMBER 3
DATATYPE_CUSTOM_FILTER NUMBER 3
DATATYPE_TEXT_EXPR NUMBER 4
DATATYPE_OBJNUM NUMBER 5
DATATYPE_VAT_OBJNUM NUMBER 6
DATATYPE_MAX NUMBER 6
TYPE_HETEROGENEOUS BOOLEAN TRUE
TYPE_HOMOGENEOUS BOOLEAN FALSE
Dependencies
DBMS_METADATA DBMS_OUTPUT DBMS_UTILITY
DBMS_METADATA_DPBUILD DBMS_STANDARD METAFILTER$
DBMS_METADATA_INT DBMS_SYS_ERROR PLITBLM
DBMS_METADATA_UTIL    
Documented No
Exceptions
Error Code Reason
31600 invalid_argval: Invalid argument
31601 invalid_operation: Invalid operation
First Available 9.0
Security Model Owned by SYS with EXECUTE granted to the EXECUTE_CATALOG_ROLE role
Source {ORACLE_HOME}/rdbms/admin/dbmsmetb.sql
Subprograms
 
CLOSE
Updates the data dictionary with the changes dbms_metadata_build.close(handle IN NUMBER);
TBD
 
CREATE_FILTER
Begins creation of a filter for a type. The filter will not be inserted into the dictionary until CLOSE is called. If the owning type (designated by 'handle') is not heterogeneous, then the filter must already be defined in sys.metafilter$. dbms_metadata_build.create_filter(
handle   IN NUMBER,
name     IN VARCHAR2,
datatype IN NUMBER)
RETURN NUMBER;
TBD
 
CREATE_TYPE
Begins creation of a type. The type will not be inserted into the dictionary until CLOSE is called dbms_metadata_build.create_type(
parent_handle IN NUMBER,
name          IN VARCHAR2,
type          IN BOOLEAN DEFAULT TYPE_HETEROGENEOUS)
RETURN NUMBER;
TBD
 
DROP_TYPE
Drops a heterogeneous type. This deletes the type definition and all dependent types, filters, etc. dbms_metadata_build.drop_type(name IN VARCHAR2);
TBD
 
HAS_FILTER (new 23ai)
Returns TRUE if the named filter exists dbms_metadata_build.has_filter(
handle      IN NUMBER,
filter_name IN VARCHAR2)
RETURN BOOLEAN;
TBD
 
SET_DEBUG
Sets the internal debug switch dbms_metadata_build.set_debug(on_off IN BOOLEAN);
exec dbms_metadata_build.set_debug(TRUE);

PL/SQL procedure successfully completed.
 
SET_DEBUG_PARAM
Set debugging parameters dbms_metadata_build.set_debug_param(
name  IN VARCHAR2,  -- defaults to DATA_PUMP_DIR/debug.trc
value IN VARCHAR2);
TBD
 
SET_FILTER_PARAM
Set filter attribute parameters

Overload 1
dbms_metadata_build.set_filter_param(
handle IN NUMBER,    -- handle returned by CREATE_FILTER
name   IN VARCHAR2,
value  IN VARCHAR2);
TBD
Overload 2 dbms_metadata_build.set_filter_param(
handle IN NUMBER,
name   IN VARCHAR2,
value  IN BOOLEAN);
TBD
Overload 3 dbms_metadata_build.set_filter_param(
handle IN NUMBER,
name   IN VARCHAR2,
value  IN NUMBER);
TBD
 
SET_TYPE_PARAM
Uses CONSTANTS, above, to set the data type

Overload 1
dbms_metadata_build.set_type_param(
handle IN NUMBER,
name   IN VARCHAR2,
value  IN VARCHAR2);
TBD
Overload 2 dbms_metadata_build.set_type_param(
handle IN NUMBER,
name   IN VARCHAR2,
value  IN BOOLEAN);
TBD
Overload 3 dbms_metadata_build.set_type_param(
handle IN NUMBER,
name   IN VARCHAR2,
value  IN NUMBER);
TBD

Related Topics
Built-in Functions
Built-in Packages
DBMS_METADATA
DBMS_METADATA_DIFF
DBMS_METADATA_DPBUILD
DBMS_METADATA_HACK
DBMS_METADATA_INT
DBMS_METADATA_UTIL
What's New In 21c
What's New In 26ai