MINI MINI MANI MO
Rem
Rem $Header: rdbms/admin/dbmsindx.sql /main/7 2017/05/28 22:46:04 stanaya Exp $
Rem
Rem dbmsindx.sql
Rem
Rem Copyright (c) 1998, 2017, Oracle and/or its affiliates.
Rem All rights reserved.
Rem
Rem NAME
Rem dbmsindx.sql - DBMS extensible INDeXing packages and types.
Rem
Rem DESCRIPTION
Rem Contains specs. for packages and types used in DBMS extensibility
Rem infrastructure (Indexing, optimizer etc.).
Rem
Rem NOTES
Rem None.
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: rdbms/admin/dbmsindx.sql
Rem SQL_SHIPPED_FILE: rdbms/admin/dbmsindx.sql
Rem SQL_PHASE: UTILITY
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem END SQL_FILE_METADATA
Rem
Rem MODIFIED (MM/DD/YY)
Rem gviswana 05/24/01 - CREATE OR REPLACE SYNONYM
Rem rshaikh 03/08/99 - change for sqlplus
Rem rxgovind 12/02/98 - use NOCOPY param passing
Rem rdbmsint 08/06/98 - rm rowset for now; rvasired
Rem nmantrav 05/11/98 - add RT_GetCount etc.
Rem rxgovind 04/09/98 - packages and types for extensible indexing
Rem rxgovind 04/09/98 - Created
Rem
REM ***************************************
REM THIS PACKAGE MUST BE CREATED UNDER SYS
REM ***************************************
-- Create the trusted PL/SQL callout library.
CREATE OR REPLACE LIBRARY DBMS_INDEX_LIB TRUSTED AS STATIC;
/
-- Package defining constants, exceptions used by SYS.RowType and SYS.RowSet
CREATE OR REPLACE PACKAGE dbms_indexing AS
TYPECODE_DATE BINARY_INTEGER := 12;
TYPECODE_NUMBER BINARY_INTEGER := 2;
TYPECODE_RAW BINARY_INTEGER := 95;
TYPECODE_CHAR BINARY_INTEGER := 96;
TYPECODE_VARCHAR2 BINARY_INTEGER := 9;
TYPECODE_VARCHAR BINARY_INTEGER := 1;
TYPECODE_MLSLABEL BINARY_INTEGER := 105;
TYPECODE_BLOB BINARY_INTEGER := 113;
TYPECODE_BFILE BINARY_INTEGER := 114;
TYPECODE_CLOB BINARY_INTEGER := 112;
TYPECODE_CFILE BINARY_INTEGER := 115;
/* These typecodes are passed while calling RowType.RT_AddUserType() */
TYPECODE_REF BINARY_INTEGER := 110;
TYPECODE_OBJECT BINARY_INTEGER := 108;
TYPECODE_VARRAY BINARY_INTEGER := 247;
TYPECODE_TABLE BINARY_INTEGER := 248;
/* Exceptions */
invalid_parameters EXCEPTION;
PRAGMA EXCEPTION_INIT(invalid_parameters, -22369);
incorrect_usage EXCEPTION;
PRAGMA EXCEPTION_INIT(incorrect_usage, -22370);
END dbms_indexing;
/
CREATE OR REPLACE PUBLIC SYNONYM dbms_indexing FOR sys.dbms_indexing
/
GRANT EXECUTE ON dbms_indexing TO public
/
-- Type sys.RowType models the column types of a Row of data.
CREATE OR REPLACE TYPE RowType AS OPAQUE VARYING (*)
USING library DBMS_INDEX_LIB
(
/* NAME
RT_BeginCreation()
DESCRIPTION
Returns a new instance of RowType which can be used to Create the
Row Description.
EXCEPTIONS
None.
*/
STATIC FUNCTION RT_BeginCreation return RowType,
/*
NAME
RT_AddBuiltinType
DESCRIPTION
This procedure Adds a Built-in Type's information to a RowType.
PARAMETERS
typecode - A Built-in Type Code from DBMS_INDEXING.
prec, scale (OPTIONAL) - REQUIRED IF TYPECODE REPRESENTS A NUMBER.
Give precision and scale. ignored otherwise.
len (OPTIONAL) - REQUIRED IF TYPECODE REPRESENTS A RAW, CHAR,
VARCHAR, VARCHAR2 types. Gives length.
csid, csfrm (OPTIONAL) - REQUIRED IF TYPECODE REPRESENTS Types
requiring character info. For eg: CHAR,
VARCHAR, VARCHAR2, CFILE.
EXCEPTIONS
- DBMS_INDEXING.invalid_parameters
Invalid Parameters (typecode, typeinfo)
- DBMS_INDEXING.incorrect_usage
incorrect usage (cannot call after calling RT_EndCreation() etc.)
*/
MEMBER PROCEDURE RT_AddBuiltinType(self IN OUT NOCOPY RowType,
typecode IN BINARY_INTEGER,
prec IN BINARY_INTEGER, scale IN BINARY_INTEGER,
len IN BINARY_INTEGER,
csid IN BINARY_INTEGER, csfrm IN BINARY_INTEGER),
/*
NAME
RT_AddUserType
DESCRIPTION
This procedure Adds a User defined Type's info. to a RowType.
PARAMETERS
typecode - A User defined Type's Typecode.
Could be REF or an ObjectType or a VARRAY or a
Nested Table in 8.1.
schema_name - Schema name of the type.
type_name - Type name.
version - Type version.
EXCEPTIONS
- DBMS_INDEXING.invalid_parameters
Invalid Parameters (typecode, typeinfo)
- DBMS_INDEXING.incorrect_usage
incorrect usage (cannot call after calling RT_EndCreation() etc.)
*/
MEMBER PROCEDURE RT_AddUserType(self IN OUT NOCOPY RowType,
typecode IN BINARY_INTEGER,
schema_name IN VARCHAR2,
type_name IN VARCHAR2, version IN varchar2),
/*
NAME
RT_EndCreation
DESCRIPTION
Ends Creation of a RowType. Other creation functions cannot be
called after this call.
*/
MEMBER PROCEDURE RT_EndCreation(self IN OUT NOCOPY RowType),
/* RowType Accessor functions */
/*
NAME
RT_GetTypeCode
DESCRIPTION
Get the TypeCode of the column type at a given position
PARAMETERS
position - The column position (starting at 1).
EXCEPTIONS
- DBMS_INDEXING.invalid_parameters
Invalid Parameters (position is beyond bounds or
the RowType is not properly Constructed).)
*/
MEMBER FUNCTION RT_GetTypeCode (self IN RowType,
position IN BINARY_INTEGER) return BINARY_INTEGER,
/*
NAME
RT_GetCount
DESCRIPTION
Get the total number of columns in the RowType.
EXCEPTIONS
- DBMS_INDEXING.incorrect_usage
Incorrect Usage - called before Ending of construction.
*/
MEMBER FUNCTION RT_GetCount(self IN RowType)
return BINARY_INTEGER,
/*
NAME
RT_GetBuiltin
DESCRIPTION
Get Information on a builtin type at a given position
PARAMETERS
position - The column position (starting at 1).
typeinfo - Will have builtin type information at the end of the
call.
EXCEPTIONS
- DBMS_INDEXING.invalid_parameters
Invalid Parameters (position is beyond bounds or
the RowType is not properly Constructed).
*/
MEMBER PROCEDURE RT_GetBuiltin(self IN RowType,
position IN BINARY_INTEGER,
prec OUT BINARY_INTEGER, scale OUT BINARY_INTEGER,
len OUT BINARY_INTEGER, csid OUT BINARY_INTEGER,
csfrm OUT BINARY_INTEGER),
/*
NAME
RT_GetUserType
DESCRIPTION
Get Information on a User defined type at a given position
PARAMETERS
position - The column position (starting at 1).
typeinfo - Will have user type information at the end of the
call.
EXCEPTIONS
- DBMS_INDEXING.invalid_parameters
Invalid Parameters (position is incorrect for a user type or
the RowType is not properly Constructed).)
*/
MEMBER PROCEDURE RT_GetUserType(self IN RowType,
position IN BINARY_INTEGER,
schema_name OUT VARCHAR2, type_name OUT VARCHAR2,
version OUT varchar2)
);
/
CREATE OR REPLACE PUBLIC SYNONYM RowType FOR sys.RowType
/
GRANT EXECUTE ON RowType TO public
/
OHA YOOOO