Skip Headers
Oracle® Database PL/SQL Packages and Types Reference
10g Release 2 (10.2)

Part Number B14258-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

183 ANYTYPE TYPE

An ANYTYPE TYPE can contain a type description of any persistent SQL type, named or unnamed, including object types and collection types. It can also be used to construct new transient type descriptions.

New persistent types can only be created using the CREATE TYPE statement. Only new transient types can be constructed using the ANYTYPE interfaces.

This chapter discusses the following:


Summary of ANYTYPE Subprograms

Table 183-1 ANYTYPE Type Subprograms

Subprogram Description
BEGINCREATE Static Procedure
Creates a new instance of ANYTYPE which can be used to create a transient type description.
SETINFO Member Procedure
Sets any additional information required for constructing a COLLECTION or builtin type.
ADDATTR Member Procedure
Adds an attribute to an ANYTYPE (of typecode DBMS_TYPES.TYPECODE_OBJECT).
ENDCREATE Member Procedure
Ends creation of a transient ANYTYPE. Other creation functions cannot be called after this call.
GETPERSISTENT Static Function
Returns an ANYTYPE corresponding to a persistent type created earlier using the CREATE TYPE SQL statement.
GETINFO Member Function
Gets the type information for the ANYTYPE.
GETATTRELEMINFO Member Function
Gets the type information for an attribute of the type (if it is of TYPECODE_OBJECT). Gets the type information for a collection's element type if the self parameter is of a collection type.


BEGINCREATE Static Procedure

This procxedure creates a new instance of ANYTYPE which can be used to create a transient type description.

Syntax

STATIC PROCEDURE BEGINCREATE(
   typecode       IN          PLS_INTEGER,
   atype          OUT NOCOPY  ANYTYPE);

Parameters

Table 183-2 BEGINCREATE Procedure Parameters

Parameter Description
typecode Use a constant from DBMS_TYPES package.

Typecodes for user-defined type:

  • DBMS_TYPES.TYPECODE_OBJECT

  • DBMS_TYPES.TYPECODE_VARRAY or

  • DBMS_TYPES.TYPECODE_TABLE

Typecodes for builtin types:

  • DBMS_TYPES.TYPECODE_NUMBER, and similar types.

atype ANYTYPE for a transient type


SETINFO Member Procedure

This procedure sets any additional information required for constructing a COLLECTION or builtin type.

Syntax

MEMBER PROCEDURE SETINFO(
   self          IN OUT NOCOPY ANYTYPE,
   prec          IN PLS_INTEGER,
   scale         IN PLS_INTEGER,
   len           IN PLS_INTEGER,
   csid          IN PLS_INTEGER,
   csfrm         IN PLS_INTEGER,
   atype         IN ANYTYPE DEFAULT NULL,
   elem_tc       IN PLS_INTEGER DEFAULT NULL,
   elem_count    IN PLS_INTEGER DEFAULT 0);

Parameters

Table 183-3 SETINFO Procedure Parameters

Parameter Description
self The transient ANYTYPE that is being constructed.
prec Optional.Required if typecode represents a NUMBER.

Give precision and scale. Ignored otherwise.

scale Optional.Required if typecode represents a NUMBER.

Give precision and scale. Ignored otherwise.

len Optional. Required if typecode represents a RAW, CHAR, VARCHAR, or VARCHAR2 type. Gives length.
csid Required if typecode represents types requiring character information such as CHAR, VARCHAR, VARCHAR2, or CFILE.
csfrm Required if typecode represents types requiring character information such as CHAR, VARCHAR, VARCHAR2, or CFILE.
atype Optional. Required if collection element typecode is a user-defined type such as TYPECODE_OBJECT, and similar others.. It is also required for a built-in type that needs user-defined type information such as TYPECODE_REF. This parameter is not needed otherwise.

The Following Parameters Are Required For Collection Types

Table 183-4 SETINFO Procedure Parameters - Collection Types

Parameter Description
elem_tc Must be of the collection element's typecode (from DBMS_TYPES package).
elem_count Pass 0 for elem_count if the self represents a nested table (TYPECODE_TABLE). Otherwise pass the collection count if self represents a VARRAY.

Exceptions

Usage Notes

It is an error to call this function on an ANYTYPE that represents a persistent user defined type.


ADDATTR Member Procedure

This procedure adds an attribute to an ANYTYPE (of typecode DBMS_TYPES.TYPECODE_OBJECT).

Syntax

MEMBER PROCEDURE ADDATTR(
   self          IN OUT NOCOPY ANYTYPE,
   aname         IN VARCHAR2,
   typecode      IN PLS_INTEGER,
   prec          IN PLS_INTEGER,
   scale         IN PLS_INTEGER,
   len           IN PLS_INTEGER,
   csid          IN PLS_INTEGER,
   csfrm         IN PLS_INTEGER,
   attr_type     IN ANYTYPE DEFAULT NULL);

Parameters

Table 183-5 ADDATTR Procedure Parameters

Parameter Description
self The transient ANYTYPE that is being constructed. Must be of type DBMS_TYPES.TYPECODE_OBJECT.
aname Optional. Attribute's name. Could be NULL.
typecode Attribute's typecode. Can be built-in or user-defined typecode (from DBMS_TYPES package).
prec Optional. Required if typecode represents a NUMBER. Give precision and scale. Ignored otherwise.
scale Optional. Required if typecode represents a NUMBER. Give precision and scale. Ignored otherwise.
len Optional. Required if typecode represents a RAW, CHAR, VARCHAR, or VARCHAR2 type. Give length.
csid Optional. Required if typecode represents a type requiring character information, such as CHAR, VARCHAR, VARCHAR2, CFILE.
csfrm Optional. Required if typecode represents a type requiring character information, such as CHAR, VARCHAR, VARCHAR2, CFILE.
attr_type Optional. ANYTYPE corresponding to a user-defined type. This parameter is required if the attribute is a user defined type.

Exceptions


ENDCREATE Member Procedure

This procedure ends creation of a transient ANYTYPE. Other creation functions cannot be called after this call.

Syntax

MEMBER PROCEDURE ENDCREATE(
   self           IN OUT NOCOPY ANYTYPE);

Parameter

Table 183-6 ENDCREATE Procedure Parameter

Parameter Description
self The transient ANYTYPE that is being constructed.


GETPERSISTENT Static Function

This procedure returns an ANYTYPE corresponding to a persistent type created earlier using the CREATE TYPE SQL statement.

Syntax

STATIC FUNCTION GETPERSISTENT(
   schema_name      IN VARCHAR2,
   type_name        IN VARCHAR2, 
   version          IN VARCHAR2 DEFAULT NULL)
   RETURN           ANYTYPE;

Parameters

Table 183-7 GETPERSISTENT Function Parameters

Parameter Description
schema_name Schema name of the type.
type_name Type name.
version Type version.

Return Values

An ANYTYPE corresponding to a persistent type created earlier using the CREATE TYPE SQL statement.


GETINFO Member Function

This function gets the type information for the ANYTYPE.

Syntax

MEMBER FUNCTION GETINFO (
   self        IN ANYTYPE,
   prec        OUT PLS_INTEGER, 
   scale       OUT PLS_INTEGER,
   len         OUT PLS_INTEGER, 
   csid        OUT PLS_INTEGER,
   csfrm       OUT PLS_INTEGER,
   schema_name OUT VARCHAR2, 
   type_name   OUT VARCHAR2, 
   version     OUT varchar2,
   count       OUT PLS_INTEGER)
   RETURN      PLS_INTEGER;

Parameters

Table 183-8 GETINFO Function Parameters

Parameter Description
self The ANYTYPE.
prec If typecode represents a number. Gives precision and scale. Ignored otherwise.
scale If typecode represents a number. Gives precision and scale. Ignored otherwise.
len If typecode represents a RAW, CHAR, VARCHAR, or VARCHAR2 type. Gives length.
csid If typecode represents a type requiring character information such as: CHAR, VARCHAR, VARCHAR2, CFILE.
csid If typecode represents a type requiring character information such as: CHAR, VARCHAR, VARCHAR2, CFILE.
schema_name Type's schema (if persistent).
type_name Type's typename.
version Type's version.
count If self is a VARRAY, this gives the VARRAY count. If self is of TYPECODE_OBJECT, this gives the number of attributes.

Return Values

The typecode of self.

Exceptions


GETATTRELEMINFO Member Function

This function gets the type information for an attribute of the type (if it is of TYPECODE_OBJECT). Gets the type information for a collection's element type if the self parameter is of a collection type.

Syntax

MEMBER FUNCTION GETATTRELEMINFO (
   self           IN ANYTYPE, 
   pos            IN PLS_INTEGER,
   prec           OUT PLS_INTEGER, 
   scale          OUT PLS_INTEGER,
   len            OUT PLS_INTEGER, 
   csid           OUT PLS_INTEGER, 
   csfrm          OUT PLS_INTEGER,
   attr_elt_type  OUT ANYTYPE
   aname          OUT VARRCHAR2)
   RETURN         PLS_INTEGER;

Parameters

Table 183-9 GETATTRELEMINFO Function Parameters

Parameter Description
self The ANYTYPE.
pos If self is of TYPECODE_OBJECT, this gives the attribute position (starting at 1). It is ignored otherwise.
prec If attribute/collection element typecode represents a NUMBER. Gives precision and scale. Ignored otherwise.
scale If attribute/collection element typecode represents a NUMBER. Gives precision and scale. Ignored otherwise.
len If typecode represents a RAW, CHAR, VARCHAR, or VARCHAR2 type. Gives length.
csid, csfrm If typecode represents a type requiring character information such as: CHAR, VARCHAR, VARCHAR2, CFILE. Gives character set ID, character set form.
attr_elt_type If attribute/collection element typecode represents a user-defined type, this returns the ANYTYPE corresponding to it. User can subsequently describe the attr_elt_type.
aname Attribute name (if it is an attribute of an object type, NULL otherwise).

Return Values

The typecode of the attribute or collection element.

Exceptions

DBMS_TYPES.INVALID_PARAMETERS: Invalid Parameters (position is beyond bounds or the ANYTYPE is not properly constructed).