Oracle WPIUTL
Version 19.3

General Information
Library Note Morgan's Library Page Header
Which has the higher priority in your organization: Deploying a new database or securing the ones you already have? Looking for a website, and resources, dedicated solely to securing Oracle databases? Check out DBSecWorx.
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);
SQL> 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
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 18c
What's New In 19c

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