Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose
The DBMS_TDB package serves two purposes:
Confirms support of transporting a database from a given source platform to a given target platform
Determining whether a database to be transported has been properly prepared for transport, and if not, identifies the condition that prevents database transport
AUTHID
DEFINER
Constants
Name
Data Type
Value
SKIP_NONE
NUMBER
0
SKIP_INACCESSIBLE
NUMBER
1
SKIP_OFFLINE
NUMBER
2
SKIP_READONLY
NUMBER
3
Dependencies
DBMS_OUTPUT
V_$DATAFILE
DBMS_PLUGTS
V$DB_TRANSPORTABLE_PLATFORM
DBMS_SYS_ERROR
V$TRANSPORTABLE_PLATFORM
DUAL
X$KCVFH
KUPCC
X$KTUSUS
TS$
X$KTUXE
V_$DATABASE
Documented
Yes
First Available
Not known
Security Model
Owned by SYS with EXECUTE granted to the DBA and SYSBACKUP roles
Checks whether a database can be transported to a target platform
Overload 1
Note: As of version 12.1.0.2 this only works if the entire database has been opened in READ ONLY mode or if working a single PDB that PDB is only in READ ONLY mode which is essentially worthless if anyone cares about high availability.
dbms_tdb.check_db(
target_platform_name IN VARCHAR2,
skip_option IN NUMBER)
RETURN BOOLEAN;
SELECT platform_name
FROM gv$transportable_platform
ORDER BY 1;
set serveroutput on
DECLARE
x BOOLEAN;
BEGIN
x := dbms_tdb.check_db('Microsoft Windows IA (32-bit)', 0);
IF x THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/
Overload 2
dbms_tdb.check_db(target_platform_name IN VARCHAR2) RETURN BOOLEAN;
SELECT platform_name
FROM gv$transportable_platform
ORDER BY 1;
set serveroutput on
DECLARE
x BOOLEAN;
BEGIN
x := dbms_tdb.check_db('Apple Mac OS');
IF x THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/
DECLARE
x BOOLEAN;
BEGIN
x := dbms_tdb.check_db('Linux IA (32-bit)');
IF x THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/
Overload 3
dbms_tdb.check_db RETURN BOOLEAN;
set serveroutput on
DECLARE
x BOOLEAN;
BEGIN
x := dbms_tdb.check_db;
IF x THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE OPEN READ ONLY;
set serveroutput on
DECLARE
x BOOLEAN;
BEGIN
x := dbms_tdb.check_db;
IF x THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/
Check if a database has external table, directory or BFILE. Uses dbms_output.put_line to output the external objects and their owners
dbms_tts.check_external RETURN BOOLEAN;
set serveroutput on
DECLARE
x BOOLEAN;
BEGIN
x := dbms_tdb.check_external;
IF x THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/
The following external tables exist in the database:
SYS.OPATCH_XML_INV
The following directories exist in the database:
SYS.SDO_DIR_ADMIN, SYS.XMLDIR, SYS.XSDDIR, SYS.ORACLE_BASE,
SYS.ORACLE_HOME, SYS.OPATCH_INST_DIR, SYS.DAGTA_PUMP_DIR,
SYS.DBMS_OPTIM_LOGDIR, SYS.DBMS_OPTIM_ADMINDIR, SYS.OPATCH_SCRIPT_DIR,
SYS.OPATCH_LOG_DIR
TRUE