Oracle DBMS_FBT
Version 26ai

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
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;
/

Related Topics
Built-in Functions
Built-in Packages
FLASHBACK
FLASHBACK TABLE
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved