Oracle WPIUTL
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 Used by the Oracle Database to resolve overloaded packages and possibly types.
AUTHID DEFINER
Constants
Name Data Type Value
 General
t_scalar CHAR(3) '000'
t_v7array CHAR(3) '001'
 Error Constants
s_ok  -- successful NUMBER 0
s_subpnotfound  -- subprogram NOT found NUMBER 1
s_notinpackage  -- PACKAGE found, proc NOT found NUMBER 2
s_notasub  -- found, but not a subprog NUMBER 3
s_notunique  -- too many matches (overloading error) NUMBER 4
s_nomatch  -- found, but param names not matched NUMBER 5
s_typenotmatch  -- name match, type doesn't match NUMBER 6
Data Types TYPE tvarchar IS table OF VARCHAR2(512) INDEX BY BINARY_INTEGER;

TYPE tchar3 IS table OF CHAR(3) INDEX BY BINARY_INTEGER;

TYPE tvchar3 IS table OF VARCHAR2(3) INDEX BY BINARY_INTEGER;

SUBTYPE ptnod IS pidl.ptnod;
Dependencies
DBMS_STANDARD PIDL PLITBLM
Documented No
First Available Not Known
Security Model Owned by SYS with EXECUTE granted to PUBLIC
Source {ORACLE_HOME}/rdbms/admin/wpiutl.sql
Subprograms
 
SUBPFPARAM
This is similar to subpparam but used for flexible parameter

-- Note: different from subpparam, pnames and ptypes are INput only
wpiutl.subpfparam(
objnum  IN     NUMBER,
name    IN     VARCHAR2,
subname IN     VARCHAR2,
prename IN     VARCHAR2,
pnames  IN     tvarchar,
ptnames IN OUT tvarchar,
ptypes  IN     tvchar3,
status     OUT NUMBER,
misdef     OUT VARCHAR2,
nename     OUT VARCHAR2);
TBD
 
SUBPPARAM
Resolves overloading subprograms by parameter names and returns types of the parameters that are listed in pnames

Overload 1
wpiutl.subpparam(
objnum  IN  NUMBER,
name    IN  VARCHAR2,
subname IN  VARCHAR2,
prename IN  VARCHAR2,
status  OUT NUMBER,
misdef  OUT VARCHAR2,
nename  OUT VARCHAR2);
SELECT object_id FROM dba_objects WHERE object_name = 'WPIUTL';

 OBJECT_ID
----------
     20542
     20543


DECLARE
 mVal VARCHAR2(30);
 nVal VARCHAR2(30);
 sVal NUMBER;
BEGIN
  wpiutl.subpparam(20542, 'WPIUTL', 'SUBPPARAM', 'SYS', sVal, mVal, nVal);
  dbms_output.put_line('Status is ' || TO_CHAR(sVal));
  dbms_output.put_line('MisDef is ' || mVal);
  dbms_output.put_line('NeName is' || nVal);
END;
/
Status is 5
MisDef is
NeName is

PL/SQL procedure successfully completed.
Overload 2 wpiutl.subpparam(
objnum  IN     NUMBER,
name    IN     VARCHAR2,
subname IN     VARCHAR2,
prename IN     VARCHAR2,
pnames  IN OUT tvarchar,
ptnames IN OUT tvarchar,
ptypes  IN OUT tvchar3,
status     OUT NUMBER,
misdef     OUT VARCHAR2,
nename     OUT VARCHAR2);
TBD

Related Topics
Built-in Functions
Built-in Packages
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved