Oracle KUPP$PROC
Version 19c

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 DataPump Support Utilities
AUTHID CURRENT_USER
Dependencies
DBMS_ASSERT DBMS_STATS KUPF$FILE
DBMS_AW_EXP DBMS_TDE_TOOLKIT KUPM$MCP
DBMS_DATAPUMP DBMS_TRAN_LIB KUPP_PROC_LIB
DBMS_DATAPUMP_INT DBMS_TTS KUPU$UTILITIES_INT
DBMS_DST KUPC$QUEUE KUPUTIL
DBMS_METADATA KUPC$QUEUE_INT KUPV$FT
DBMS_METADATA_UTIL KUPC$QUE_INT KUPV$FT_INT
DBMS_PLUGTS KUPCC KUPW$WORKER
DBMS_PRIV_CAPTURE KUPD$DATA  
Documented No
First Available 10.1
Security Model Owned by SYS with execute granted to the EXECUTE_CATALOG_ROLE role only
Source {ORACLE_HOME}/rdbms/admin/prvthpp.plb
Subprograms
 
ANY_DEBUG_TRACE_INFO
Returns TRUE if any debug trace information has been generated kupp$proc.any_debug_trace_info RETURN BOOLEAN;
set serveroutput on

BEGIN
  IF kupp$proc.any_debug_trace_info THEN
    dbms_output.put_line('TRUE');
  ELSE
    dbms_output.put_line('FALSE');
  END IF;
END;
/
FALSE
 
APPLY_TRACE_DEBUG_RULES
Undocumented kupp$proc.apply_trace_debug_rules(debug_flags IN BINARY_INTEGER)
RETURN BINARY_INTEGER;
SQL> SELECT kupp$proc.apply_trace_debug_rules(-1)
  2  FROM dual;

KUPP$PROC.APPLY_TRACE_DEBUG_RULES(-1)
-------------------------------------
                           -1.074E+09

SQL> SELECT kupp$proc.apply_trace_debug_rules(0)
  2  FROM dual;

KUPP$PROC.APPLY_TRACE_DEBUG_RULES(0)
------------------------------------
                                   0

SQL> SELECT kupp$proc.apply_trace_debug_rules(1)
  2  FROM dual;

KUPP$PROC.APPLY_TRACE_DEBUG_RULES(1)
------------------------------------
                                   1
 
CHANGE_USER
Undocumented but allow changing the user's identity. Requires the BECOME USER privilege kupp$proc.change_user(username IN VARCHAR2);
SELECT user FROM dual;

USER
------------------------------
SYS

SELECT sys_context('USERENV', 'CURRENT_SCHEMA') FROM dual;

SYS_CONTEXT('USERENV','CURRENT_SCHEMA')
----------------------------------------
SYS

exec sys.kupp$proc.change_user('UWCLASS');
*
ERROR at line 1:
ORA-31625: Schema UWCLASS is needed to import this object, but is unaccessible
ORA-06512: at "SYS.KUPP$PROC", line 45
ORA-06512: at "SYS.KUPP$PROC", line 930
ORA-06512: at line 1
 
CHECK_FOR_INTERRUPT
Undocumented kupp$proc.check_for_interrupt;
exec kupp$proc.check_for_interrupt;

PL/SQL procedure successfully completed.
 
CHECK_WORKER_STATUS
Undocumented and protected by an ACCESIBLE BY Clause kupp$proc.check_worker_status;
exec kupp$proc.check_worker_status;
     *
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00904: insufficient privilege to access object CHECK_WORKER_STATUS
 
CREATE_MASTER_PROCESS
Undocumented kupp$proc.create_master_process(
master_exec_spec IN VARCHAR2,
username         IN VARCHAR2,
job_name         IN VARCHAR2,
wait_init_done   IN BOOLEAN)
RETURN BINARY_INTEGER;
TBD
 
CREATE_WORKER_PROCESSES
Undocumented kupp$proc.create_worker_processes(
num_workers      IN BINARY_INTEGER,
worker_exec_spec IN VARCHAR2,
worker_seed      IN BINARY_INTEGER,
wait_init_done   IN BOOLEAN)
RETURN BINARY_INTEGER;
TBD
 
DELETE_WORKER_PROCESSES
Undocumented kupp$proc.delete_worker_processes;
exec kupp$proc.delete_worker_processes;
*
ERROR at line 1:
ORA-39110: error deleting worker processes
ORA-31610: cannot call this function from a non-master process
ORA-06512: at "SYS.KUPP$PROC", line 102
ORA-06512: at "SYS.KUPP$PROC", line 383
ORA-06512: at line 1
 
DISABLE_MULTIPROCESS
Undocumented kupp$proc.disable_multiprocess RETURN BINARY_INTEGER;
SELECT kupp$proc.disable_multiprocess
FROM dual;

DISABLE_MULTIPROCESS
--------------------
                   1
 
ENABLE_FLASHBACK_DMLS
Undocumented kupp$proc.enable_flashback_dmls;
exec kupp$proc.enable_flashback_dmls;

PL/SQL procedure successfully completed.
 
ENABLE_MULTIPROCESS
Undocumented kupp$proc.enable_multiprocess RETURN BINARY_INTEGER;
SELECT kupp$proc.enable_multiprocess
FROM dual;

ENABLE_MULTIPROCESS
-------------------
                  1
 
GET_NLS_ALTER_SESSION
Undocumented kupp$proc.get_nls_alter_session RETURN VARCHAR2;
SELECT kupp$proc.get_nls_alter_session
FROM dual;

GET_NLS_ALTER_SESSION
-----------------------------------------------
 
 
GET_TRACE_DEBUG
Undocumented kupp$proc.get_trace_debug RETURN BINARY_INTEGER;
SQL> SELECT kupp$proc.get_trace_debug
  2  FROM dual;

GET_TRACE_DEBUG
---------------
              0
 
GET_WORKER_EXCEPTION
Undocumented kupp$proc.get_worker_exception(
worker_id        OUT BINARY_INTEGER,
worker_name      OUT VARCHAR2,
worker_name_size IN  BINARY_INTEGER,
error_code       OUT BINARY_INTEGER,
error_stack      OUT VARCHAR2,
error_stack_size IN  BINARY_INTEGER);
TBD
 
INIT_DONE
Undocumented kupp$proc.init_done;
exec kupp$proc.init_done;

PL/SQL procedure successfully completed.
 
IS_MULTIPROCESS_ENABLED
Returns a 1 if multiprocess is enable, otherwise 0

See ENABLE_MULTIPROCESS and DISABLE_MULTIPROCESS on this page
kupp$proc.is_multiprocess_enabled RETURN BINARY_INTEGER;
SELECT kupp$proc.is_multiprocess_enabled
FROM dual;

IS_MULTIPROCESS_ENABLED
-----------------------
                      1
 
JOB_ALIVE
Undocumented kupp$proc.job_alive(jobser IN BINARY_INTEGER) RETURN BINARY_INTEGER;
TBD
 
KILL_WORKER
Deletes the identified worker process kupp$proc.kill_worker(worker_id IN BINARY_INTEGER);
exec kupp$proc.kill_worker(1);
BEGIN kupp$proc.kill_worker(1); END;

*
ERROR at line 1:
ORA-39110: error deleting worker processes
ORA-31610: cannot call this function from a non-master process
ORA-06512: at "SYS.KUPP$PROC", line 968
ORA-06512: at line 1
 
OPTION_ENABLED
Undocumented

The only value that returns TRUE in my tests is one (1)
kupp$proc.option_enabled(optval IN BINARY_INTEGER) RETURN BOOLEAN;
set serveroutput on

SQL> BEGIN
  2    IF kupp$proc.option_enabled(-1) THEN
  3      dbms_output.put_line('-1');
  4    END IF;
  5  END;
  6  /
*
ERROR at line 1:
ORA-01426: numeric overflow
ORA-06512: at "SYS.KUPP$PROC", line 944
ORA-06512: at "SYS.KUPP$PROC", line 959
ORA-06512: at line 2


SQL> BEGIN
  2    IF kupp$proc.option_enabled(0) THEN
  3       dbms_output.put_line('0');
  4    END IF;
  5  END;
  6  /

PL/SQL procedure successfully completed.

SQL> BEGIN
  2    IF kupp$proc.option_enabled(1) THEN
  3      dbms_output.put_line('1');
  4    END IF;
  5  END;
  6  /
1

PL/SQL procedure successfully completed.

SQL> BEGIN
  2    IF kupp$proc.option_enabled(999999999) THEN
  3      dbms_output.put_line('999999999');
  4    END IF;
  5  END;
  6  /

PL/SQL procedure successfully completed.

SQL> BEGIN
  2    IF kupp$proc.option_enabled(9999999999) THEN
  3      dbms_output.put_line('9999999999');
  4    END IF;
  5  END;
  6  /
*
ERROR at line 1:
ORA-01426: numeric overflow
ORA-06512: at line 2
 
SEC_TT_LOADED
Undocumented kupp$proc.sec_tt_loaded;
SQL> exec kupp$proc.sec_tt_loaded;
BEGIN kupp$proc.sec_tt_loaded; END;
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [600], [], [], [], [], [], [], [], [], [], [], []
ORA-31610: cannot call this function from a non-master process
ORA-06512: at "SYS.KUPP$PROC", line 977
ORA-06512: at line 1
 
SEC_TT_UNLOADED
Undocumented kupp$proc.sec_tt_unloaded;
SQL> exec kupp$proc.sec_tt_unloaded;
BEGIN kupp$proc.sec_tt_unloaded; END;
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [600], [], [], [], [], [], [], [], [], [], [], []
ORA-31610: cannot call this function from a non-master process
ORA-06512: at "SYS.KUPP$PROC", line 985
ORA-06512: at line 1
 
SET_PROFILING
Undocumented kupp$proc.set_profiling(on_flag IN BOOLEAN);
exec kupp$proc.set_profiling(FALSE);

PL/SQL procedure successfully completed.
 
SET_REMOTE_WORKER
Undocumented kupp$proc.set_remote_worker(worker_id IN NUMBER);
exec kupp$proc.set_remote_worker(9);

PL/SQL procedure successfully completed.
 
SET_TRACE_DEBUG
Undocumented kupp$proc.set_trace_debug(
debug_flags IN BINARY_INTEGER,
caller_type IN BINARY_INTEGER,
remote_op   IN BOOLEAN);
TBD
 
SHUTDOWN_IN_PROGRESS
Returns TRUE if the container is in the process of shutting down kupp$proc.shutdown_in_progress RETURN BOOLEAN;
BEGIN
  IF kupp$proc.shutdown_in_progress THEN
    dbms_output.put_line('Shutdown In Progress');
  ELSE
    dbms_output.put_line('Shutdown Is Not In Progress');
  END IF;
END;
/
Shutdown Is Not In Progress

PL/SQL procedure successfully completed.
 
TOTAL_WORKERS_ALIVE
Undocumented kupp$proc.total_workers_alive(worker_exceptions_queued OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
DECLARE
 ret PLS_INTEGER;
 weq PLS_INTEGER;
BEGIN
  ret := kupp$proc.total_workers_alive(weq);
  dbms_output.put_line(ret);
  dbms_output.put_line(weq);
END;
/
*
ERROR at line 1:
ORA-39003: unable to get count of total workers alive
ORA-31610: cannot call this function from a non-master process
ORA-06512: at "SYS.KUPP$PROC", line 883
ORA-06512: at line 5
 
WHATS_MY_ID
Returns the current user's user_id from USER$ kupp$proc.whats_my_id RETURN BINARY_INTEGER;
sho user
USER is "SYS"

SELECT user_id
FROM dba_users
WHERE username = 'SYS';

   USER_ID
----------
         0

SELECT kupp$proc.whats_my_id
FROM dual;

WHATS_MY_ID
-----------
          0
 
WHATS_MY_NAME
Outputs the name of a Data Pump process based on process name size kupp$proc.whats_my_name(
process_name      OUT VARCHAR2,
process_name_size IN  BINARY_INTEGER);
DECLARE
 outVal VARCHAR2(30);
BEGIN
  kupp$proc.whats_my_name(outVal, 14);
  dbms_output.put_line(outVal);
END;
/
*
ERROR at line 1:
ORA-39160: error on whats my name call
ORA-39159: cannot call this function from a non-Data Pump process
ORA-06512: at "SYS.KUPP$PROC", line 228
ORA-06512: at "SYS.KUPP$PROC", line 1095
ORA-06512: at line 4
 
WHAT_AM_I
Undocumented but seems to always return zero (0) kupp$proc.what_am_id RETURN BINARY_INTEGER;
SELECT kupp$proc.what_am_i
FROM dual;

 WHAT_AM_I
----------
         0
 
WHAT_ORACLE_PRODUCT
Undocumented: Oracle Enterprise Edition version 11.2.0.3 and 12.1.0.2 both return 8 kupp$proc.what_oracle_product RETURN BINARY_INTEGER;
SELECT kupp$proc.what_oracle_product
FROM dual;

WHAT_ORACLE_PRODUCT
-------------------
                  8
 
WORKER_EXTTBL_ACTIVE
Undocumented kupp$proc.worker_exttbl_active;
exec kupp$proc.worker_exttbl_active;
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [600], [], [], [], [], [], [], [], [], [], [], []
ORA-39159: cannot call this function from a non-Data Pump process
ORA-06512: at "SYS.KUPP$PROC", line 1001
ORA-06512: at line 1
 
WORKER_EXTTBL_FULLNAME
Undocumented kupp$proc.worker_exttbl_fullName(
exttbl_schema IN VARCHAR2,
exttbl_name   IN VARCHAR2);
exec kupp$proc.worker_exttbl_fullName('C##SH', 'SALES');
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [600], [], [], [], [], [], [], [], [], [], [], []
ORA-39159: cannot call this function from a non-Data Pump process
ORA-06512: at "SYS.KUPP$PROC", line 990
ORA-06512: at line 1
 
WORKER_EXTTBL_INACTIVE
Undocumented kupp$proc.worker_exttbl_inactive(
exec kupp$proc.worker_exttbl_inactive;
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [600], [], [], [], [], [], [], [], [], [], [], []
ORA-39159: cannot call this function from a non-Data Pump process
ORA-06512: at "SYS.KUPP$PROC", line 1001
ORA-06512: at line 1
 
WORKER_PROCESS_INIT
Undocumented kupp$proc.worker_process_init(
max_workers IN BINARY_INTEGER,
use_cluster IN BINARY_INTEGER,
svcname     IN VARCHAR2);
TBD
 
WORKER_SERVICE_INIT
Undocumented kupp$proc.worker_service_init(svcnam IN VARCHAR2);
SELECT DISTINCT name
FROM v$active_services;

exec kupp$proc.worker_service_init('SYS$USERS');
BEGIN kupp$proc.worker_service_init('SYS$USERS'); END;
*
ERROR at line 1:
ORA-31686: error creating worker processes
ORA-39159: cannot call this function from a non-Data Pump process
ORA-06512: at "SYS.KUPP$PROC", line 209
ORA-06512: at "SYS.KUPP$PROC", line 356
ORA-06512: at line 1

Related Topics
Built-in Functions
Built-in Packages
Datapump Executable
DBMS_DATAPUMP
DBMS_DATAPUMP_UTL
What's New In 19c
What's New In 20c-21c

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