General Information
Library Note
Morgan's Library Page Header
Purpose
This is a transaction layer package related to FlashBack Table for internal use only .... and yet execute is granted to PUBLIC.
Apparently someone inside Oracle Corp. thinks unprivileged end-users should be able to perform flashback table.
AUTHID
CURRENT_USER
Data Types
CREATE OR REPLACE TYPE flashbacktblist AS VARRAY(100) OF VARCHAR2(261);
/
TYPE TMPTBCURTYPE IS REF CURSOR;
Dependencies
DBMS_ASSERT
DBMS_SQL
PLITBLM
DBMS_FBT_LIB
FLASHBACKTBLIST
Documented
No
First Available
10.2
Security Model
Owned by SYS with EXECUTE granted to PUBLIC
Source
{ORACLE_HOME}/rdbms/admin/dbmstxin.sql
Subprograms
FBT_ANALYZE
Undocumented
Overload 1
dbms_fbt.fbt_analyze(
table_name IN VARCHAR2,
flashback_scn IN NUMBER,
tmptbcur OUT dbms_fbt.tmptbcurtype);
CREATE TABLE T1 (
testcol VARCHAR2(20))
ENABLE ROW MOVEMENT;
DECLARE
rc dbms_fbt.tmptbcurtype;
BEGIN
dbms_fbt.fbt_analyze ('T1', dbms_flashback.get_system_change_number, rc);
END;
/
Overload 2
dbms_fbt.fbt_analyze(
table_name IN VARCHAR2,
flashback_time IN TIMESTAMP,
tmptbcur OUT dbms_fbt.tmptbcurtype);
CREATE TABLE T2 (
testcol VARCHAR2(20))
ENABLE ROW MOVEMENT;
DECLARE
rc dbms_fbt.tmptbcurtype ;
BEGIN
dbms_fbt.fbt_analyze ('T2', SYSTIMESTAMP, rc);
END;
/
FBT_DISCARD
Purge
dbms_fbt.fbt_discard;
exec dbms_fbt.fbt_discard ;
FBT_EXECUTE
Undocumented
Overload 1
dbms_fbt.fbt_execute(
table_names IN sys.flashbacktblist,
flashback_scn IN NUMBER);
CREATE TABLE t3 (
testcol DATE)
ENABLE ROW MOVEMENT;
DECLARE
n NUMBER := dbms_flashback.get_system_change_number ;
tl sys.flashbacktblist ;
BEGIN
tl := sys.flashbacktblist ();
tl.EXTEND;
tl(1) := 'T3';
dbms_fbt.fbt_execute (tl, n);
END;
/
Overload 2
dbms_fbt.fbt_execute(
table_names IN sys.flashbacktblist,
flashback_time IN TIMESTAMP);
CREATE TABLE t4 (
testcol DATE)
ENABLE ROW MOVEMENT;
DECLARE
fblist sys.flashbacktblist ;
BEGIN
fblist := sys.flashbacktblist ('T4');
dbms_fbt.fbt_execute (fblist, SYSTIMESTAMP);
END;
/