ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling
complimentary technical Workshops on Database Security for the first 30
Oracle Database customers located anywhere in North America, EMEA, LATAM, or
APAC that send an email to
asra_us@oracle.com. Request a Workshop for
your organization today.
Purpose
Utility package supporting snapshot replication.
AUTHID
DEFINER
Data Types
TYPE dates IS TABLE OF DATE INDEX BY BINARY_INTEGER;
TYPE hashcodes IS TABLE OF VARCHAR2 INDEX BY BINARY_INTEGER;
TYPE idens IS TABLE OF VARCHAR2 INDEX BY BINARY_INTEGER;
TYPE maxvars IS TABLE OF VARCHAR2 INDEX BY BINARY_INTEGER;
TYPE oids IS TABLE OF RAW INDEX BY BINARY_INTEGER;
TYPE scalars IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
dbms_snapshot_utl.check_referential_constraint(
base_owner IN VARCHAR2,
base_name IN VARCHAR2,
base_columns IN VARCHAR2,
col_count IN NUMBER,
ref_columns IN VARCHAR2,
ref_owner IN VARCHAR2,
ref_name IN VARCHAR2,
result OUT NUMBER);
dbms_repcat.direct_load_used(
tableobj_col IN dbms_snapshot_utl.scalars,
lold_col IN dbms_snapshot_utl.dates,
rscn_col IN dbms_snapshot_utl.scalars,
dlused OUT BINARY_INTEGER);
dbms_output.put_line('After: ' || (vScalars(1) + vScalars(2)));
END;
/
Before: 300
DECLARE
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at line 10
dbms_snapshot_utl.get_fully_qualified_name(
tobjn_col IN dbms_snapshot_utl.scalars,
colno_col IN dbms_snapshot_utl.scalars,
fqname_col OUT dbms_snapshot_utl.maxvars);
dbms_snapshot_utl.get_lob_columns_info(
masown IN VARCHAR2,
masnam IN VARCHAR2,
snapcols IN VARCHAR2,
lobcnt OUT NUMBER,
lobcols OUT VARCHAR2,
lobpositions OUT VARCHAR2,
lobvecmask OUT RAW);
conn sys@pdbdev as sysdba
CREATE MATERIALIZED VIEW pm.mv_lob
TABLESPACE uwdata
REFRESH COMPLETE
START WITH SYSDATE
NEXT SYSDATE + 1 AS
SELECT product_id, ad_photo
FROM pm.print_media;
set serveroutput on
DECLARE
a NUMBER;
b VARCHAR2(100);
c VARCHAR2(100);
r RAW(32);
BEGIN
dbms_snapshot_utl.get_lob_columns_info('PM','MV_LOB','PRODUCT_ID',a,b,c,r);
dbms_output.put_line('LOBCNT: ' || TO_CHAR(a));
dbms_output.put_line('LOBCOLS: ' || b);
dbms_output.put_line('LOBPOSITIONS: ' || c);
dbms_output.put_line('LOBVECMASK: ' || TO_CHAR(r));
END;
/
The demo does not work but it may help someone figure out what is missing. I've tried lots of permutations based on DML, commits, rollbacks, etc. with the underlying MV to no avail.
dbms_snapshot_utl.get_log_age(
log_age IN OUT DATE,
mow IN VARCHAR2,
mas IN VARCHAR2,
snaptype IN NUMBER);
set serveroutput on
DECLARE
d DATE := SYSDATE;
BEGIN
dbms_snapshot_utl.get_log_age(d,'UWCLASS','MV1',1);
dbms_output.put_line(d);
END;
/
DECLARE
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "SYS.DBMS_SNAPSHOT_UTL", line 1494
ORA-06512: at line 4
Returns the name and related information about a materialized view log
Overload 1
dbms_snapshot_utl.get_log_name(
master IN VARCHAR2,
mowner IN VARCHAR2,
lognm OUT VARCHAR2,
chkflg IN BINARY_INTEGER,
status OUT BINARY_INTEGER,
masobjid OUT BINARY_INTEGER);
CREATE MATERIALIZED VIEW mv1
TABLESPACE uwdata
REFRESH COMPLETE
AS SELECT s.srvr_id, COUNT(*)
FROM servers s, serv_inst i
WHERE s.srvr_id = i.srvr_id
GROUP BY s.srvr_id;
dbms_snapshot_utl.get_log_name(
sname IN VARCHAR2,
sowner IN VARCHAR2,
lognm IN OUT VARCHAR2,
chkpk IN BINARY_INTEGER,
status OUT BINARY_INTEGER);
CREATE MATERIALIZED VIEW mv1
TABLESPACE uwdata
REFRESH COMPLETE
AS SELECT s.srvr_id, COUNT(*)
FROM servers s, serv_inst i
WHERE s.srvr_id = i.srvr_id
GROUP BY s.srvr_id;
dbms_snapshot_utl.get_log_type(
mowner IN VARCHAR2,
master IN VARCHAR2,
masobjnum OUT BINARY_INTEGER,
log_type OUT BINARY_INTEGER);
CREATE MATERIALIZED VIEW mv1
TABLESPACE uwdata
REFRESH COMPLETE
AS SELECT s.srvr_id, COUNT(*)
FROM servers s, serv_inst i
WHERE s.srvr_id = i.srvr_id
GROUP BY s.srvr_id;
Given an input of an object_id returns the object's owner and name
dbms_snapshot_utl.get_object_name(
objn_col IN dbms_snapshot_utl.scalars,
owner_col OUT dbms_snapshot_utl.idens,
name_col OUT dbms_snapshot_utl.idens);
SELECT object_id
FROM dba_objects
WHERE owner = 'PM'
AND object_name = 'MV_LOB';
dbms_snapshot_utl.get_pk_by_eoid(
eoid_col IN dbms_snapshot_utl.oids,
tobjnum_col OUT dbms_snapshot_utl.scalars,
tpkct_col OUT dbms_snapshot_utl.scalars,
tpkintcol_col OUT dbms_snapshot_utl.scalars,
tpkcolnam_col OUT dbms_snapshot_utl.idens,
tpkflg_col OUT dbms_snapshot_utl.scalars);
dbms_snapshot_utl.get_pk_constraint_info(
owner IN VARCHAR2,
tablename IN VARCHAR2,
pk_name IN VARCHAR2,
pk_type OUT BINARY_INTEGER,
pk_cols OUT VARCHAR2,
pk_idx_name OUT VARCHAR2,
idx_cols OUT VARCHAR2);
dbms_snapshot_utl.get_relational_columns(
owner IN VARCHAR2,
tablename IN VARCHAR2,
colname IN VARCHAR2,
rcols OUT dbms_snapshot_utl.idens,
numcols OUT BINARY_INTEGER);
dbms_snapshot_utl.get_typeinfo_by_toid(
typeoid_col IN dbms_snapshot_utl.oids,
ownername_col OUT dbms_snapshot_utl.idens,
typename_col OUT dbms_snapshot_utl.idens,
hashcode_col OUT dbms_snapshot_utl.hashcodes);
dbms_snapshot_utl.register_snapshot(
snapowner IN VARCHAR2,
snapname IN VARCHAR2,
snapsite IN VARCHAR2,
snapshot_id IN BINARY_INTEGER,
flag IN BINARY_INTEGER,
qry_txt IN VARCHAR2,
rep_type IN BINARY_INTEGER,
rollback_seg IN VARCHAR2);
dbms_snapshot_utl.setup(
hdl_col IN dbms_snapshot_utl.scalars,
idx_col IN dbms_snapshot_utl.scalars,
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
rbseg_col IN dbms_snapshot_utl.idens,
inflag_col IN dbms_snapshot_utl.scalars,
rcscn OUT NUMBER);
dbms_snapshot_utl.set_up(
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
rollseg_col IN dbms_snapshot_utl.idens,
flag_col IN dbms_snapshot_utl.scalars,
outflag_col OUT dbms_snapshot_utl.scalars,
snaptime_col OUT dbms_snapshot_utl.dates,
loadertime_col OUT dbms_snapshot_utl.dates,
num_sid IN BINARY_INTEGER,
snapid_tab OUT dbms_snapshot_utl.scalars,
max_tab_scn_col OUT dbms_snapshot_utl.scalars,
max_dl_scn_col OUT dbms_snapshot_utl.scalars,
max_pmop_scn_col OUT dbms_snapshot_utl.scalars,
trunc_scn_col OUT dbms_snapshot_utl.scalars,
max_ins_tim_col OUT dbms_snapshot_utl.dates,
max_upd_tim_col OUT dbms_snapshot_utl.dates,
max_del_tim_col OUT dbms_snapshot_utl.dates,
max_ins_scn_col OUT dbms_snapshot_utl.scalars,
max_upd_tim_col OUT dbms_snapshot_utl.scalars,
max_del_tim_col OUT dbms_snapshot_utl.scalars,
hdl_col IN dbms_snapshot_utl.scalars,
hdl_idx_col IN dbms_snapshot_utl.scalars,
rscn OUT NUMBER);
TBD
Overload 2
dbms_snapshot_utl.set_up(
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
masobj_col IN dbms_snapshot_utl.scalars,
rollseg_col IN dbms_snapshot_utl.idens,
flag_col IN dbms_snapshot_utl.scalars,
snaptime_col OUT dbms_snapshot_utl.dates,
loadertime_col OUT dbms_snapshot_utl.dates,
num_sid IN BINARY_INTEGER,
snapid_tab OUT dbms_snapshot_utl.scalars);
TBD
Overload 3
dbms_snapshot_utl.set_up(
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
masobj_col IN dbms_snapshot_utl.scalars,
rollseg_col IN dbms_snapshot_utl.idens,
flag_col IN dbms_snapshot_utl.scalars,
snaptime_col OUT dbms_snapshot_utl.dates,
loadertime_col OUT dbms_snapshot_utl.dates,
num_sid IN BINARY_INTEGER,
snapid_tab OUT dbms_snapshot_utl.scalars,
su_scn_col OUT dbms_snapshot_utl.scalars,
nr_flag IN BINARY_INTEGER);
TBD
Overload 4
dbms_snapshot_utl.set_up(
mowner IN VARCHAR2,
master IN VARCHAR2,
log IN OUT VARCHAR2,
snapid IN OUT BINARY_INTEGER,
snaptime IN OUT DATE,
snaptype IN BINARY_INTEGER,
rollback_seg IN VARCHAR2);
TBD
Overload 5
dbms_snapshot_utl.set_up(
mowner IN VARCHAR2,
master IN VARCHAR2,
masobjnum IN BINARY_INTEGER,
log IN OUT VARCHAR2,
snapid IN OUT BINARY_INTEGER,
snaptime IN OUT DATE,
snaptype IN BINARY_INTEGER,
rollback_seg IN VARCHAR2);
dbms_snapshot_utl.subscribe(
cset IN VARCHAR2,
mown IN VARCHAR2,
mas IN VARCHAR2,
mvflg IN BINARY_INTEGER,
scvect IN RAW,
act IN BINARY_INTEGER,
lrscn IN NUMBER,
hdl IN OUT BINARY_INTEGER,
cvnam OUT VARCHAR2,
stat OUT BINARY_INTEGER);
dbms_snapshot_utl.update_log_placeholder(
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
rollseg IN VARCHAR2,
snapid IN OUT BINARY_INTEGER,
snaptype IN BINARY_INTEGER,
ll_update IN OUT BINARY_INTEGER,
sl_update IN OUT BINARY_INTEGER,
oper IN BINARY_INTEGER,
m82_version IN BINARY_INTEGER);
dbms_snapshot_utl.validate(
hdl_col IN dbms_snapshot_utl.scalars,
idx_col IN dbms_snapshot_utl.scalars,
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
lrscn_col IN dbms_snapshot_utl.scalars,
stat_col IN dbms_snapshot_utl.scalars);
dbms_snapshot_utl.verify_log(
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
masobj_col OUT dbms_snapshot_utl.scalars,
flag_col IN dbms_snapshot_utl.scalars,
outflag_col OUT dbms_snapshot_utl.scalars,
logmn_col OUT dbms_snapshot_utl.idens,
oldest_col OUT dbms_snapshot_utl.dates,
oldestpk_col OUT dbms_snapshot_utl.dates,
oldloader_col OUT dbms_snapshot_utl.dates,
oldest_oid_col OUT dbms_snapshot_utl.dates,
oldestnew_col OUT dbms_snapshot_utl.dates,
fcvec_col OUT dbms_snapshot_utl.raws,
youngest_fc_col OUT dbms_snapshot_utl.dates,
hdl_col IN dbms_snapshot_utl.scalars,
hdl_indx_col IN dbms_snapshot_utl.scalars,
lrscn_col IN dbms_snapshot_utl.scalars,
stat_col OUT dbms_snapshot_utl.scalars,
typ_own_col IN dbms_snapshot_utl.idens,
typ_nam_col IN dbms_snapshot_utl.idens,
toid_col OUT dbms_snapshot_utl.oids,
hashcode_col OUT dbms_snapshot_utl.hashcodes);
TBD
Overload 2
dbms_snapshot_utl.verify_log(
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
masobj_col OUT dbms_snapshot_utl.scalars,
flag_col IN dbms_snapshot_utl.scalars,
outflag_col OUT dbms_snapshot_utl.scalars,
logmn_col OUT dbms_snapshot_utl.idens,
oldest_col OUT dbms_snapshot_utl.dates,
oldestpk_col OUT dbms_snapshot_utl.dates,
oldloader_col OUT dbms_snapshot_utl.dates,
oldest_oid_col OUT dbms_snapshot_utl.dates,
oldestnew_col OUT dbms_snapshot_utl.dates,
fcvec_col OUT dbms_snapshot_utl.raws,
youngest_fc_col OUT dbms_snapshot_utl.dates,
hdl_col IN dbms_snapshot_utl.scalars,
hdl_indx_col IN dbms_snapshot_utl.scalars,
lrscn_col IN dbms_snapshot_utl.scalars,
stat_col OUT dbms_snapshot_utl.scalars,
typ_own_col IN dbms_snapshot_utl.idens,
typ_nam_col IN dbms_snapshot_utl.idens,
toid_col OUT dbms_snapshot_utl.oids,
hashcode_col OUT dbms_snapshot_utl.hashcodes,
oldestseq_col OUT dbms_snapshot_utl.dates);
TBD
Overload 3
dbms_snapshot_utl.verify_log(
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
masobj_col OUT dbms_snapshot_utl.scalars,
flag_col IN dbms_snapshot_utl.scalars,
outflag_col OUT dbms_snapshot_utl.scalars,
logmn_col OUT dbms_snapshot_utl.idens,
oldest_col OUT dbms_snapshot_utl.dates,
oldestpk_col OUT dbms_snapshot_utl.dates,
oldloader_col OUT dbms_snapshot_utl.dates,
oldest_oid_col OUT dbms_snapshot_utl.dates,
oldestnew_col OUT dbms_snapshot_utl.dates,
fcvec_col OUT dbms_snapshot_utl.raws,
youngest_fc_col OUT dbms_snapshot_utl.dates,
hdl_col IN dbms_snapshot_utl.scalars,
hdl_indx_col IN dbms_snapshot_utl.scalars,
lrscn_col IN dbms_snapshot_utl.scalars,
stat_col OUT dbms_snapshot_utl.scalars,
typ_own_col IN dbms_snapshot_utl.idens,
typ_nam_col IN dbms_snapshot_utl.idens,
toid_col OUT dbms_snapshot_utl.oids,
hashcode_col OUT dbms_snapshot_utl.hashcodes,
oldestseq_col OUT dbms_snapshot_utl.dates,
nr_flag IN BINARY_INTEGER);
TBD
Overload 4
dbms_snapshot_utl.verify_log(
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
masobj_col IN dbms_snapshot_utl.scalars,
flag_col IN dbms_snapshot_utl.scalars,
outflag_col OUT dbms_snapshot_utl.scalars,
logmn_col OUT dbms_snapshot_utl.idens,
oldest_col OUT dbms_snapshot_utl.dates,
oldestpk_col OUT dbms_snapshot_utl.dates,
oldloader_col OUT dbms_snapshot_utl.dates,
fcvec_col OUT dbms_snapshot_utl.raws,
youngest_fc_col OUT dbms_snapshot_utl.dates,
mod_scn_col OUT dbms_snapshot_utl.scalars,
nr_flag IN BINARY_INTEGER);
TBD
Overload 5
dbms_snapshot_utl.verify_log(
mow IN VARCHAR2,
mas IN VARCHAR2,
stime IN DATE,
stype IN NUMBER,
fcvec IN RAW,
eqcvec IN RAW,
in_vec IN BINARY_INTEGER,
out_rec IN OUT BINARY_INTEGER);
dbms_snapshot_utl.wrap_up(
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
masobj_col IN dbms_snapshot_utl.scalars,
rollseg_col IN dbms_snapshot_utl.idens,
flag_col IN dbms_snapshot_utl.scalars,
snaptime_col IN dbms_snapshot_utl.dates,
loadertime_col IN dbms_snapshot_utl.dates,
snapid_col IN dbms_snapshot_utl.scalars,
snaptype_col IN dbms_snapshot_utl.scalars,
masidx_col IN dbms_snapshot_utl.scalars,
rscn IN NUMBER,
mastype_col IN dbms_snapshot_utl.scalars);
TBD
Overload 2
dbms_snapshot_utl.wrap_up(
snapid_col IN dbms_snapshot_utl.scalars,
snaptype_col IN dbms_snapshot_utl.scalars,
masidx_col IN dbms_snapshot_utl.scalars,
mown_col IN dbms_snapshot_utl.idens,
mas_col IN dbms_snapshot_utl.idens,
masobj_col IN dbms_snapshot_utl.scalars,
rollseg_col IN dbms_snapshot_utl.idens,
flag_col IN dbms_snapshot_utl.scalars,
snaptime_col IN dbms_snapshot_utl.dates,
loadertime_col IN dbms_snapshot_utl.dates);
TBD
Overload 3
dbms_snapshot_utl.wrap_up(
mowner IN VARCHAR2,
master IN VARCHAR2,
snapid IN BINARY_INTEGER,
snaptime IN DATE,
registration_status OUT BINARY_INTEGER,
snaptype IN BINARY_INTEGER,
rollback_seg IN VARCHAR2);
TBD
Overload 4
dbms_snapshot_utl.wrap_up(
mowner IN VARCHAR2,
master IN VARCHAR2,
masobjnum IN BINARY_INTEGER,
snapid IN BINARY_INTEGER,
snaptime IN DATE,
loadertime IN DATE,
registration_status OUT BINARY_INTEGER,
snaptype IN BINARY_INTEGER,
rollback_seg IN VARCHAR2);