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.
dbms_swat_mm_internal.dml_occurred(
load_rows IN NUMBER,
insert_rows IN NUMBER,
delete_rows IN NUMBER,
update_rows IN NUMBER,
partition_truncates IN NUMBER,
partition_creates IN NUMBER,
partition_drops IN NUMBER,
partition_moves IN NUMBER,
partition_splits IN NUMBER,
partition_merges IN NUMBER,
partition_coalesces IN NUMBER,
partition_exchanges IN NUMBER)
RETURN NUMBER;
SELECT dbms_swat_mm_internal.dml_occurred(12, 11, 10,9,8,7,6,5,4,3,2,1)
FROM dual;
Drops a materialized view ... and ... unfortunately ... drops ANY materialized view ... not just an Auto MV.
We understand that this is an internal package and not supposed to be [mis]used as we have just done but Oracle Corp. should harder to sanitize inputs: Something that clearly didn't happen here.
dbms_swat_mm_internal.drop_auto_mview(
mv_owner IN VARCHAR2,
mv_name IN VARCHAR2);
SELECT owner, mview_name, auto
FROM dba_mviews;
OWNER MVIEW_NAME AUT
------------------------- -------------------- ---
C##UWCLASS MV_SIMPLE NO
C##UWCLASS MV_DEMAND NO
dbms_swat_mm_internal.get_act_change_data(
in_mv_owner IN VARCHAR2,
in_mv_name IN VARCHAR2,
last_refresh_date IN DATE,
in_current_date IN DATE,
act_change_data OUT sys.dbms_swat_mm_internal.change_data_rec,
num_tables OUT NUMBER);
dbms_swat_mm_internal.get_canon_date_info(
curds IN DATE,
curde IN DATE,
snapshot_interval IN NUMBER,
real_snap_id IN NUMBER,
same_canon_snapshot_flag OUT BOOLEAN,
first_snapid OUT NUMBER,
first_snap_startdate OUT DATE,
first_snap_enddate OUT DATE,
first_fraction OUT NUMBER,
last_snapid OUT NUMBER,
last_snap_startdate OUT DATE,
last_snap_enddate OUT DATE,
last_fraction OUT NUMBER,
trace_flag IN BOOLEAN);
dbms_swat_mm_internal.get_mos_run_params(
in_current_date IN DATE,
current_dow OUT NUMBER,
current_snap OUT NUMBER,
starting_dow OUT NUMBER,
starting_snap OUT NUMBER,
ending_dow OUT NUMBER,
ending_snap OUT NUMBER,
prediction_window OUT NUMBER
mos_prob_method OUT VARCHAR2
mos_pred_window OUT NUMBER
tot_gen_days OUT NUMBER);
DECLARE
a NUMBER;
b NUMBER;
c NUMBER;
d NUMBER;
e NUMBER;
f NUMBER;
g NUMBER;
h dbms_id;
i NUMBER;
j NUMBER;
BEGIN
dbms_swat_mm_internal.get_mos_run_params(SYSDATE, a, b, c, d, e, f, g, h, i, j);
dbms_output.put_line(a);
dbms_output.put_line(b);
dbms_output.put_line(c);
dbms_output.put_line(d);
dbms_output.put_line(e);
dbms_output.put_line(f);
dbms_output.put_line(g);
dbms_output.put_line(h);
dbms_output.put_line(i);
dbms_output.put_line(j);
END;
/ 4
14
4
14
4
62
48
WEIGHTED
12
11
dbms_swat_mm_internal.get_num_days(
in_mv_owner IN VARCHAR2,
in_mv_name IN VARCHAR2,
in_current_date IN DATE,
min_canon_snap_id OUT NUMBER,
num_gen_days OUT NUMBER,
tot_dow_days OUT NUMBER,
num_dow_days OUT NUMBER);
DECLARE
a NUMBER;
b NUMBER;
c NUMBER;
d NUMBER;
BEGIN
dbms_swat_mm_internal.get_num_days('C##UWCLASS','MV_SIMPLE', SYSDATE, a, b, c, d);
dbms_output.put_line('MCSI: ' || TO_CHAR(a));
dbms_output.put_line('NGD: ' || TO_CHAR(b));
dbms_output.put_line('TDD: ' || TO_CHAR(c));
dbms_output.put_line('NDD: ' || TO_CHAR(d));
END;
/ MCSI:
NGD: 0
TDD: 1
NDD: 0
Returns TRUE if a materialized view is fast refreshable, else FALSE
dbms_swat_mm_internal.mview_fast_refreshable(qualified_mv_name IN VARCHAR2)
RETURN BOOLEAN;
BEGIN
IF dbms_swat_mm_internal.mview_fast_refreshable('LIBRARY') THEN
dbms_output.put_line('Fast Refreshable');
ELSE
dbms_output.put_line('Not Fast Refreshable');
END IF;
END;
/ Fast Refreshable
dbms_swat_mm_internal.next_quiet_window(
tabledmarray IN sys.dbms_swat_mm_internal.outputarray,
startsnapid IN NUMBER,
duration OUT NUMBER)
RETURN NUMBER;
dbms_swat_mm_internal.record_refresh_status(
in_swat_mm_start_time IN DATE,
in_refresh_id IN NUMBER,
in_mv_owner IN VARCHAR2,
in_mv_name IN VARCHAR2,
in_status IN NUMBER,
in_error IN NUMBER);