Oracle PLITBLM
Version 12.1.0.1

General Information
Library Note Morgan's Library Page Footer
The Library is currently in the process of being upgraded from Oracle Database Version 12.1.0.1 to 12.1.0.2. Demos are being upgraded to reflect the new Container paradigm as well as EBR (Edition Based Redefinition) and may contain references to CDBs, PDBs, and other objects you may not be familiar with such as CDB_OBJECTS_AE: Welcome to 12c.

Interested in Oracle GoldenGate? Check out the IGGOUG,
Purpose According to the 8.1.5 online docs this package "Handles index-table operations." Note 1 on the same page states: "The DBMS_STANDARD, STANDARD, and PLITBLM packages contain subprograms to help implement basic language features. Oracle does not recommend that the subprograms be directly called. For this reason, these three supplied packages are not documented in this book." Blog posts indicate more specificaly the package contains the functions that can be utilized when working with Associative Arrays.

PLITBLM is a stand-alone package header (no body). The functionality it provides is defined with PRAGMA INTERFACE(C, ...)
AUTHID DEFINER
Data Types SUBTYPE key_type IS BINARY_INTEGER;

SUBTYPE element_count IS BINARY_INTEGER; /* natural is too inefficient */
Dependencies SELECT name FROM dba_dependencies WHERE referenced_name = 'PLITBLM'
UNION
SELECT referenced_name FROM dba_dependencies WHERE name = 'PLITBLM';

-- This query reutrns 596 objects
Documented No
First Available 8.0
Security Model Owned by SYS with EXECUTE granted to PUBLIC

All functions created with:
pragma interface(c, ...);
pragma restrict_references(count,rnds,wnds,rnps,wnps);
so SQL and PL/SQL demos are not possible
Source {ORACLE_HOME}/rdbms/admin/plitblm.sql
Subprograms
 
COUNT
Counts the number of rows in a collection
Overload 1
plitblm.count(collection IN "<COLLECTION_1>") RETURN KEY_TYPE;
TBD
Overload 2 plitblm.count(collection IN "<ASSOC_ARRAY_1>") RETURN ELEMENT_COUNT;
TBD
 
DELETE
Deletes an element in a collection
Overload 1
plitblm.delete(collection IN "<COLLECTION_1>");
TBD
Overload 2 plitblm.delete(collection IN OUT "<V2_TABLE_1>", i IN KEY_TYPE);
TBD
Overload 3 plitblm.delete(collection IN OUT "<TABLE_1>", i IN KEY_TYPE);
TBD
Overload 4 plitblm.delete(collection IN OUT "<V2_TABLE_1>", i IN KEY_TYPE, j IN KEY_TYPE);
TBD
Overload 5 plitblm.delete(collection IN OUT "<TABLE_1>", i IN KEY_TYPE, j IN KEY_TYPE);
TBD
Overload 6 plitblm.delete(collection IN OUT "<ASSOC_ARRAY_1>");
TBD
Overload 7 plitblm.delete(collection IN OUT "<ASSOC_ARRAY_1>", i IN VARCHAR2);
TBD
Overload 8 plitblm.delete(collection IN OUT "<ASSOC_ARRAY_1>", i1 IN VARCHAR2, i2 IN VARCHAR2);
TBD
 
EXISTS
Does the identified element exist?
Overload 1
plitblm.exits(collection IN "<COLLECTION_1>", i IN KEY_TYPE) RETURN BOOLEAN;
TBD
Overload 2 plitblm.exits(collection IN "<ASSOC_ARRAY_1>", i IN VARCHAR2) RETURN BOOLEAN;
TBD
 
EXTEND
Extends a collection
Overload 1
plitblm.extend(collection IN OUT "<VARRAY_1>", n IN ELEMENT_COUNT:=1);
TBD
Overload 2 plitblm.extend(collection IN OUT "<TABLE_1>", n IN ELEMENT_COUNT:=1);
TBD
Overload 3 plitblm.extend(collection IN OUT "<VARRAY_1>", n IN ELEMENT_COUNT, i IN KEY_TYPE);
TBD
Overload 4 plitblm.extend(collection IN OUT "<TABLE_1>", n IN ELEMENT_COUNT, i IN KEY_TYPE);
TBD
 
FIRST
Makes the first element current in an array such as SQL%BULK_EXCEPTIONS
Overload 1
plitblm.first(collection IN "<COLLECTION_1>") RETURN IN KEY_TYPE;
TBD
Overload 2 plitblm.first(collection IN "<ASSOC_ARRAY_1>") RETURN IN VARCHAR2;
TBD
 
LAST
Makes the last element current in an array such as SQL%BULK_EXCEPTIONS
Overload 1
plitblm.last(collection IN "<COLLECTION_1>") RETURN IN KEY_TYPE;
TBD
Overload 2 plitblm.last(collection IN "<ASSOC_ARRAY_1>") RETURN IN VARCHAR2;
TBD
 
LIMIT
Returns the maximum number of elements the collection can have plitblm.limit(collection IN "<COLLECTION_1>") RETURN IN KEY_TYPE;
TBD
 
NEXT
Makes the next element current
Overload 1
plitblm.next(collection IN "<COLLECTION_1>", i IN KEY_TYPE) RETURN KEY_TYPE;
TBD
Overload 2 plitblm.next(collection IN "<ASSOC_ARRAY_1>", i IN VARCHAR2) RETURN VARCHAR2;
TBD
 
PRIOR
Makes the prior element current
Overload 1
plitblm.prior(collection IN "<COLLECTION_1>", i IN KEY_TYPE) RETURN KEY_TYPE;
TBD
Overload 2 plitblm.prior(collection IN "<ASSOC_ARRAY_1>", i IN VARCHAR2) RETURN VARCHAR2;
TBD
 
TRIM
Deletes elements from the end of a collection
Overload 1
plitblm.trim(collection IN OUT "<VARRAY_1>", n IN ELEMENT_COUNT:=1);
TBD
Overload 2 plitblm.trim(collection IN OUT "<TABLE_1>", n IN ELEMENT_COUNT:=1);
TBD

Related Topics
Associative Arrays
Collections
Types
VARRAYS

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-2014 Daniel A. Morgan All Rights Reserved