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;
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);
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);