Oracle PLITBLM
Version 21c

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 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 returns 532 objects
Documented No
First Available 8.0
Security Model Owned by SYS with EXECUTE granted to DVSYS and PUBLIC

All functions created with:
pragma interface(c, ...);
pragma restrict_references(count,rnds,wnds,rnps,wnps);
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
Built-in Functions
Built-in Packages
Collections
Types
VARRAYS
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