SlideShare uma empresa Scribd logo
1 de 6
----------------------------------------TEMPORAL VALIDITY Testing
---------------------------------------The Temporal Validity feature is relate to valid time dimension for a table via PERIOD FOR
clause which adds a time dimension to each row in the table consisting of two date-time
columns to indicate validity of data. By this feature we can hidden data that is no longer
valid or (inactive) or old from queries. This is an addition over timestamp columns in table
for potential future requirements base on time range.
SQL> connect monowar/password
Connected.
SQL> select table_name from user_tables;
TABLE_NAME
-------------------------------------------------------------------------------TEST_ARCH
CP_TEST_ARCH
TV_EMP
TEST_TV
SQL> desc TEST_TV
Name
Null? Type
----------------------------------------- -------- ---------------------------EMPNO
NUMBER(4)
ENAME
VARCHAR2(10)
JOB
VARCHAR2(9)
MGR
NUMBER(4)
HIREDATE
DATE
SAL
NUMBER(7,2)
COMM
NUMBER(7,2)
DEPTNO
NUMBER(2)
SQL> select count (*) from TEST_TV;
COUNT(*)
---------14
SQL> alter table TEST_TV add period for recoder_time;
Table altered.
SQL> desc TEST_TV
Name
Null? Type
----------------------------------------- -------- ---------------------------EMPNO
NUMBER(4)
ENAME
VARCHAR2(10)
JOB
VARCHAR2(9)
MGR
NUMBER(4)
HIREDATE
DATE
SAL
NUMBER(7,2)
COMM
NUMBER(7,2)
DEPTNO
NUMBER(2)
SQL> select table_name, column_name
2 from dba_tab_cols
3 where owner='MONOWAR' and table_name='TEST_TV';
TABLE_NAME
COLUMN_NAME
-------------------------------------------------------------------------------TEST_TV
EMPNO
TEST_TV
ENAME
TEST_TV
JOB
TEST_TV
TEST_TV
TEST_TV
TEST_TV
TEST_TV
TEST_TV
TEST_TV
TEST_TV

MGR
HIREDATE
SAL
COMM
DEPTNO
RECODER_TIME_START
RECODER_TIME_END
RECODER_TIME
11 rows selected.
SQL> select column_name,data_type from user_tab_cols where table_name='TEST_TV' and hidden_column='YES';
COLUMN_NAME
DATA_TYPE
-------------------------------------------------------------------------------RECODER_TIME_START
TIMESTAMP(6) WITH TIME ZONE
RECODER_TIME_END
TIMESTAMP(6) WITH TIME ZONE
RECODER_TIME
NUMBER

We can use PERIOD FOR clause or use the DBMS_FLASHBACK_ARCHIVE procedure with
the SELECT statement to filter on valid-time columns .
Testing with PERIOD FOR
+++++++++++++++++++++++
SQL> connect monowar/password
Connected.
SQL> show user;
USER is "MONOWAR"
SQL> create table TV_EMP (
2 EMPNO NUMBER(7),
3 FULLNAME VARCHAR2(80),
4 USER_TIME_START DATE,
5 USER_TIME_END DATE,
6 PERIOD FOR USER_TIME (USER_TIME_START,USER_TIME_END));
Table created.

Check that implicit constraint has been created with valid-time dimension
------------------------------------------------------------------------SQL> select CONSTRAINT_NAME CN, CONSTRAINT_TYPE CT,GENERATED, VALIDATED
from dba_constraints
where table_name='TV_EMP';
CN
CT GENERATED
VALIDATED
- -------------- --------------------------USER_TIME34EC4D C USER NAME
VALIDATED
SQL> insert into tv_emp
2 values (301,'EAMMON',to_date('27-JAN-2011','dd-mon-yyyy'),
3 to_date('31-JUL-2013','dd-mon-yyyy'));
1 row created.
SQL> commit;
Commit complete.
SQL> select table_name, column_name
from dba_tab_cols
where owner='MONOWAR' and table_name='TV_EMP';
TABLE_NAME
COLUMN_NAME
-----------------------------------TV_EMP
USER_TIME
TV_EMP
EMPNO
TV_EMP
FULLNAME
TV_EMP
USER_TIME_START
TV_EMP
USER_TIME_END

Diassociate the columns of valid-time dimension
-------------------------------------------------------------SQL> alter table TV_EMP DROP (period for user_time);
Table altered.
SQL> select table_name, column_name
2 from dba_tab_cols
3 where owner='MONOWAR' and table_name='TV_EMP';
TABLE_NAME
COLUMN_NAME
-------------------------------------------------------------------------------TV_EMP
EMPNO
TV_EMP
FULLNAME
TV_EMP
USER_TIME_START
TV_EMP
USER_TIME_END
Constraint Check
----------------SQL> select CONSTRAINT_NAME CN, CONSTRAINT_TYPE CT,GENERATED, VALIDATED
from dba_constraints
where table_name='TV_EMP';
no rows selected

Create a new valid-time diemnsion without column names
(USER_TIME_START,USER_TIME_END)
SQL> alter table TV_EMP add period for valid_time;
Table altered.
SQL> desc TV_EMP
Name
Null? Type
----------------------------------------- -------- ---------------------------EMPNO
NUMBER(7)
FULLNAME
VARCHAR2(80)
USER_TIME_START
DATE
USER_TIME_END
DATE

Note: USER_TIME_START,USER_TIME_END are still there as part of user's definition of the
table.
Check the table columns
-------------------------------SQL> select table_name, column_name
2 from dba_tab_cols
3 where owner='MONOWAR' and table_name='TV_EMP';
TABLE_NAME
COLUMN_NAME
-------------------------------------------------------------------------------TV_EMP
VALID_TIME_START
TV_EMP
EMPNO
TV_EMP
FULLNAME
TV_EMP
USER_TIME_START
TV_EMP
USER_TIME_END
TV_EMP
VALID_TIME_END
TV_EMP
VALID_TIME
7 rows selected.

Testing with DBMS_FLASHBACK_ARCHIVE
+++++++++++++++++++++++++++++++++++++
The DBMS_FLASHBACK_ARCHIVE package to set the time visibility of the data for a given
period of time or data which is currently valid within the valid time period at the session
level.
For testing with very minimum data, I have created a TEST_TV based on SCOTT.emp table.
SQL> update TEST_TV set RECODER_TIME_START=SYSDATE;
14 rows updated.
SQL> update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE >'23-JAN-82';
2 rows updated.
SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('CURRENT');
PL/SQL procedure successfully completed.
So now when we do a count(*) from the table TEST_TV, it only returns the rows which we
have deemed to be active or current and not all the rows (here 12/14).
SQL> select count(*) from TEST_TV;
COUNT(*)
---------12
I am going to extent the time period for more rows
NOTE:
SQL> update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE <'23-JAN-82';
update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE <'23-JAN-82'
*
ERROR at line 1:
ORA-00904: "RECODER_TIME_END": invalid identifier
SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('CURRENT');
PL/SQL procedure successfully completed.
SQL> update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE >'28-SEP-81';
update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE >'28-SEP-81'
*
ERROR at line 1:
ORA-00904: "RECODER_TIME_END": invalid identifier
Now set the visibility of the temporal data to the full table and update:
SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('ALL');
PL/SQL procedure successfully completed.
SQL> update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE >'28-SEP-81';
6 rows updated.
SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('CURRENT');
PL/SQL procedure successfully completed.
SQL> select count(*) from TEST_TV;
COUNT(*)
---------8
This time select statement is getting less number (8) of rows than last time (12).
Put it back normal state
-----------------------------SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('ALL');
PL/SQL procedure successfully completed.
SQL> select count(*) from TEST_TV;
COUNT(*)
---------14
++++++++++++++++++++++++++
FLASHBACK ARCHIVE
++++++++++++++++++++++++++
SQL> alter database datafile '/BPELAIT2/MONDB01/MONDB01/test_arch01.dbf' resize 500M;
Database altered.
SQL> connect monowar/password
Connected.
SQL> create table FA_sales as select * from sh.sales;
Table created.
SQL> create Flashback Archive test_nfaopt tablespace TEST_ARCH RETENTION 10 DAY NO OPTIMIZE DATA;
Flashback archive created.
[Ref: http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_5011.htm]
SQL> alter table FA_sales flashback archive test_nfaopt;
Table altered.
Set the context level collection for FA_sales table
-----------------------------------------------SQL> exec dbms_flashback_archive.set_context_level('TYPICAL');
PL/SQL procedure successfully completed.
Make some update on Flashback table from other schema
----------------------------------------------------SQL> conn sh/sh
Connected.
SQL> update monowar.FA_sales set CUST_ID=3333 where CUST_ID=8865;
243 rows updated.
SQL> commit;
Commit complete.
Check the flashback table status
---------------------------------------SQL> select * from dba_flashback_archive_tables;
TABLE_NAME
-------------------------------------------------------------------------------OWNER_NAME
-------------------------------------------------------------------------------FLASHBACK_ARCHIVE_NAME
-------------------------------------------------------------------------------ARCHIVE_TABLE_NAME
STATUS
----------------------------------------------------- ------------FA_SALES
MONOWAR
TEST_NFAOPT
SYS_FBA_HIST_110567
ENABLED

--- NOTE: DBA_FLASHBACK_ARCHIVE_TABLES for NO OPTIMIZE DATA
Truncate the table
SQL> truncate table MONOWAR.FA_SALES;
Table truncated.
SQL> select count (*) from MONOWAR.FA_SALES;
COUNT(*)
---------0
Check data on flashback archive
-------------------------------SQL> select count (*) from MONOWAR.SYS_FBA_HIST_110567;
COUNT(*)
---------919086
Retrieve the Transaction ID from flashback archive table
------------------------------------------------------SQL> select distinct XID from monowar.SYS_FBA_HIST_110567;
XID
---------------0004001500000A16
select DBMS_flashback_archive.Get_sys_context
('0004001500000A16','USERENV','SESSION_USER') as SUSPECTUSR
From MONOWAR.FA_SALES
versions between scn minvalue and maxvalue
where num=1;
SQL> select DBMS_flashback_archive.Get_sys_context
2 ('0004001500000A16','USERENV','SESSION_USER') as SUSPECTUSR
3 ,versions_XID,VERSIONS_starttime,versions_endtime
4 From MONOWAR.FA_SALES
5 versions between scn minvalue and maxvalue
SUSPECTUSR VERSIONS_XID VERSIONS_STARTTIME VERSIONS_ENDTIME
--------------------------------------------------------------------------SH
01-NOV-13 04.05.56.000000000 PM
CLEAN UP
--------------SQL> alter table MONOWAR.FA_SALES NO flashback archive;
Table altered.
SQL> drop flashback archive test_nfaopt;
Flashback archive dropped.

Mais conteúdo relacionado

Mais procurados

Tsm ad restore
Tsm ad restoreTsm ad restore
Tsm ad restoresuwit
 
DB2 Basic Commands - UDB
DB2 Basic Commands - UDBDB2 Basic Commands - UDB
DB2 Basic Commands - UDBSrinimf-Slides
 
12c for Developers - Feb 2014
12c for Developers - Feb 201412c for Developers - Feb 2014
12c for Developers - Feb 2014Connor McDonald
 
Tems 8 Basic steps for beginners
Tems 8 Basic steps for beginners Tems 8 Basic steps for beginners
Tems 8 Basic steps for beginners Syed Muhammad Zaidi
 
Oracle ERP Personalization for control master items list
Oracle ERP Personalization for control master items listOracle ERP Personalization for control master items list
Oracle ERP Personalization for control master items listAhmed Elshayeb
 
Managing Statistics for Optimal Query Performance
Managing Statistics for Optimal Query PerformanceManaging Statistics for Optimal Query Performance
Managing Statistics for Optimal Query PerformanceKaren Morton
 
Oracle 12c Automatic Data Optimization (ADO) - ILM
Oracle 12c Automatic Data Optimization (ADO) - ILMOracle 12c Automatic Data Optimization (ADO) - ILM
Oracle 12c Automatic Data Optimization (ADO) - ILMMonowar Mukul
 
Linux networking commands short
Linux networking commands shortLinux networking commands short
Linux networking commands shortSayed Ahmed
 
Introducing new SQL syntax and improving performance with preparse Query Rewr...
Introducing new SQL syntax and improving performance with preparse Query Rewr...Introducing new SQL syntax and improving performance with preparse Query Rewr...
Introducing new SQL syntax and improving performance with preparse Query Rewr...Sveta Smirnova
 
A Review of PostgreSQL Replication Approaches - APJ
A Review of PostgreSQL Replication Approaches - APJA Review of PostgreSQL Replication Approaches - APJ
A Review of PostgreSQL Replication Approaches - APJEDB
 
New features-in-mariadb-and-mysql-optimizers
New features-in-mariadb-and-mysql-optimizersNew features-in-mariadb-and-mysql-optimizers
New features-in-mariadb-and-mysql-optimizersSergey Petrunya
 
Variations of PostgreSQL Replication
Variations of PostgreSQL ReplicationVariations of PostgreSQL Replication
Variations of PostgreSQL ReplicationEDB
 

Mais procurados (20)

Tsm ad restore
Tsm ad restoreTsm ad restore
Tsm ad restore
 
Pro PostgreSQL
Pro PostgreSQLPro PostgreSQL
Pro PostgreSQL
 
DB2 Basic Commands - UDB
DB2 Basic Commands - UDBDB2 Basic Commands - UDB
DB2 Basic Commands - UDB
 
Db health check
Db health checkDb health check
Db health check
 
12c for Developers - Feb 2014
12c for Developers - Feb 201412c for Developers - Feb 2014
12c for Developers - Feb 2014
 
Tems 8 Basic steps for beginners
Tems 8 Basic steps for beginners Tems 8 Basic steps for beginners
Tems 8 Basic steps for beginners
 
Hspice tut
Hspice tutHspice tut
Hspice tut
 
Oracle ERP Personalization for control master items list
Oracle ERP Personalization for control master items listOracle ERP Personalization for control master items list
Oracle ERP Personalization for control master items list
 
SQLQueries
SQLQueriesSQLQueries
SQLQueries
 
Casnewb
CasnewbCasnewb
Casnewb
 
Managing Statistics for Optimal Query Performance
Managing Statistics for Optimal Query PerformanceManaging Statistics for Optimal Query Performance
Managing Statistics for Optimal Query Performance
 
Oracle 12c Automatic Data Optimization (ADO) - ILM
Oracle 12c Automatic Data Optimization (ADO) - ILMOracle 12c Automatic Data Optimization (ADO) - ILM
Oracle 12c Automatic Data Optimization (ADO) - ILM
 
Contiguous
ContiguousContiguous
Contiguous
 
Autoextend
AutoextendAutoextend
Autoextend
 
Ass OS
Ass OSAss OS
Ass OS
 
Linux networking commands short
Linux networking commands shortLinux networking commands short
Linux networking commands short
 
Introducing new SQL syntax and improving performance with preparse Query Rewr...
Introducing new SQL syntax and improving performance with preparse Query Rewr...Introducing new SQL syntax and improving performance with preparse Query Rewr...
Introducing new SQL syntax and improving performance with preparse Query Rewr...
 
A Review of PostgreSQL Replication Approaches - APJ
A Review of PostgreSQL Replication Approaches - APJA Review of PostgreSQL Replication Approaches - APJ
A Review of PostgreSQL Replication Approaches - APJ
 
New features-in-mariadb-and-mysql-optimizers
New features-in-mariadb-and-mysql-optimizersNew features-in-mariadb-and-mysql-optimizers
New features-in-mariadb-and-mysql-optimizers
 
Variations of PostgreSQL Replication
Variations of PostgreSQL ReplicationVariations of PostgreSQL Replication
Variations of PostgreSQL Replication
 

Destaque

Oracle 12c: Database Table Rows Archiving testing
Oracle 12c: Database Table Rows Archiving testingOracle 12c: Database Table Rows Archiving testing
Oracle 12c: Database Table Rows Archiving testingMonowar Mukul
 
SOA Fusion Middleware installation
SOA Fusion Middleware installationSOA Fusion Middleware installation
SOA Fusion Middleware installationMonowar Mukul
 
12c Flex ASM: Moving to Flex ASM
12c Flex ASM: Moving to Flex ASM12c Flex ASM: Moving to Flex ASM
12c Flex ASM: Moving to Flex ASMMonowar Mukul
 
Oracle 12c RAC (Advanced installation - Flex ASM)
Oracle 12c RAC (Advanced installation - Flex ASM)Oracle 12c RAC (Advanced installation - Flex ASM)
Oracle 12c RAC (Advanced installation - Flex ASM)Monowar Mukul
 
Exadata I/O Resource Manager (Exadata IORM)
Exadata I/O Resource Manager (Exadata IORM)Exadata I/O Resource Manager (Exadata IORM)
Exadata I/O Resource Manager (Exadata IORM)Monowar Mukul
 
Oracle EM12c Edit or Create Incident rules and Setup SMS alert
Oracle EM12c Edit or Create Incident rules and Setup SMS alertOracle EM12c Edit or Create Incident rules and Setup SMS alert
Oracle EM12c Edit or Create Incident rules and Setup SMS alertMonowar Mukul
 
SMS notification setup using EM12c
SMS notification setup using EM12cSMS notification setup using EM12c
SMS notification setup using EM12cMonowar Mukul
 
TESTING - Drop 12c RAC Database, Database Software and GI
TESTING - Drop 12c RAC Database, Database Software and GITESTING - Drop 12c RAC Database, Database Software and GI
TESTING - Drop 12c RAC Database, Database Software and GIMonowar Mukul
 
Mission San Luis Rey
Mission San Luis ReyMission San Luis Rey
Mission San Luis Reysmacedo372
 
Oracle 11g Timesten in memory Database software install
Oracle 11g Timesten in memory Database software installOracle 11g Timesten in memory Database software install
Oracle 11g Timesten in memory Database software installMonowar Mukul
 
12c database migration from ASM storage to NON-ASM storage
12c database migration from ASM storage to NON-ASM storage12c database migration from ASM storage to NON-ASM storage
12c database migration from ASM storage to NON-ASM storageMonowar Mukul
 
Empires of the Sea
Empires of the SeaEmpires of the Sea
Empires of the Seasmacedo372
 
Oracle 12c RAC Database Software Install and Create Database
Oracle 12c RAC Database Software Install and Create DatabaseOracle 12c RAC Database Software Install and Create Database
Oracle 12c RAC Database Software Install and Create DatabaseMonowar Mukul
 

Destaque (14)

Oracle 12c: Database Table Rows Archiving testing
Oracle 12c: Database Table Rows Archiving testingOracle 12c: Database Table Rows Archiving testing
Oracle 12c: Database Table Rows Archiving testing
 
SOA Fusion Middleware installation
SOA Fusion Middleware installationSOA Fusion Middleware installation
SOA Fusion Middleware installation
 
12c Flex ASM: Moving to Flex ASM
12c Flex ASM: Moving to Flex ASM12c Flex ASM: Moving to Flex ASM
12c Flex ASM: Moving to Flex ASM
 
Oracle 12c RAC (Advanced installation - Flex ASM)
Oracle 12c RAC (Advanced installation - Flex ASM)Oracle 12c RAC (Advanced installation - Flex ASM)
Oracle 12c RAC (Advanced installation - Flex ASM)
 
Exadata I/O Resource Manager (Exadata IORM)
Exadata I/O Resource Manager (Exadata IORM)Exadata I/O Resource Manager (Exadata IORM)
Exadata I/O Resource Manager (Exadata IORM)
 
Oracle EM12c Edit or Create Incident rules and Setup SMS alert
Oracle EM12c Edit or Create Incident rules and Setup SMS alertOracle EM12c Edit or Create Incident rules and Setup SMS alert
Oracle EM12c Edit or Create Incident rules and Setup SMS alert
 
SMS notification setup using EM12c
SMS notification setup using EM12cSMS notification setup using EM12c
SMS notification setup using EM12c
 
TESTING - Drop 12c RAC Database, Database Software and GI
TESTING - Drop 12c RAC Database, Database Software and GITESTING - Drop 12c RAC Database, Database Software and GI
TESTING - Drop 12c RAC Database, Database Software and GI
 
Mission San Luis Rey
Mission San Luis ReyMission San Luis Rey
Mission San Luis Rey
 
Oracle 11g Timesten in memory Database software install
Oracle 11g Timesten in memory Database software installOracle 11g Timesten in memory Database software install
Oracle 11g Timesten in memory Database software install
 
Exadata Cell metrics
Exadata Cell metricsExadata Cell metrics
Exadata Cell metrics
 
12c database migration from ASM storage to NON-ASM storage
12c database migration from ASM storage to NON-ASM storage12c database migration from ASM storage to NON-ASM storage
12c database migration from ASM storage to NON-ASM storage
 
Empires of the Sea
Empires of the SeaEmpires of the Sea
Empires of the Sea
 
Oracle 12c RAC Database Software Install and Create Database
Oracle 12c RAC Database Software Install and Create DatabaseOracle 12c RAC Database Software Install and Create Database
Oracle 12c RAC Database Software Install and Create Database
 

Semelhante a 12c Database TEMPORAL VALIDITY & FLASHBACK ARCHIVE Testing

OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should KnowOTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should KnowAlex Zaballa
 
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should KnowOTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should KnowAlex Zaballa
 
Oracle Database 12c Application Development
Oracle Database 12c Application DevelopmentOracle Database 12c Application Development
Oracle Database 12c Application DevelopmentSaurabh K. Gupta
 
br_test_lossof-datafile_10g.doc
br_test_lossof-datafile_10g.docbr_test_lossof-datafile_10g.doc
br_test_lossof-datafile_10g.docLucky Ally
 
SQL/MX 3.6 Select for update feature
SQL/MX 3.6 Select for update featureSQL/MX 3.6 Select for update feature
SQL/MX 3.6 Select for update featureFrans Jongma
 
Informix Warehouse Accelerator (IWA) features in version 12.1
Informix Warehouse Accelerator (IWA) features in version 12.1Informix Warehouse Accelerator (IWA) features in version 12.1
Informix Warehouse Accelerator (IWA) features in version 12.1Keshav Murthy
 
EvolveExecutionPlans.pdf
EvolveExecutionPlans.pdfEvolveExecutionPlans.pdf
EvolveExecutionPlans.pdfPraveenPolu1
 
Oracle SQL AND PL/SQL
Oracle SQL AND PL/SQLOracle SQL AND PL/SQL
Oracle SQL AND PL/SQLsuriyae1
 
Optimizer in oracle 11g by wwf from ebay COC
Optimizer in oracle 11g by wwf from ebay COCOptimizer in oracle 11g by wwf from ebay COC
Optimizer in oracle 11g by wwf from ebay COCLouis liu
 
PostgreSQL 9.5 Features
PostgreSQL 9.5 FeaturesPostgreSQL 9.5 Features
PostgreSQL 9.5 FeaturesSaiful
 
Flashback (Practical Test)
Flashback (Practical Test)Flashback (Practical Test)
Flashback (Practical Test)Anar Godjaev
 
Oracle flashback
Oracle flashbackOracle flashback
Oracle flashbackCambodia
 

Semelhante a 12c Database TEMPORAL VALIDITY & FLASHBACK ARCHIVE Testing (20)

OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should KnowOTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
 
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should KnowOTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
 
Oracle Database 12c Application Development
Oracle Database 12c Application DevelopmentOracle Database 12c Application Development
Oracle Database 12c Application Development
 
br_test_lossof-datafile_10g.doc
br_test_lossof-datafile_10g.docbr_test_lossof-datafile_10g.doc
br_test_lossof-datafile_10g.doc
 
SQL/MX 3.6 Select for update feature
SQL/MX 3.6 Select for update featureSQL/MX 3.6 Select for update feature
SQL/MX 3.6 Select for update feature
 
Informix Warehouse Accelerator (IWA) features in version 12.1
Informix Warehouse Accelerator (IWA) features in version 12.1Informix Warehouse Accelerator (IWA) features in version 12.1
Informix Warehouse Accelerator (IWA) features in version 12.1
 
EvolveExecutionPlans.pdf
EvolveExecutionPlans.pdfEvolveExecutionPlans.pdf
EvolveExecutionPlans.pdf
 
Oracle training in hyderabad
Oracle training in hyderabadOracle training in hyderabad
Oracle training in hyderabad
 
Oracle SQL AND PL/SQL
Oracle SQL AND PL/SQLOracle SQL AND PL/SQL
Oracle SQL AND PL/SQL
 
Les01
Les01Les01
Les01
 
Optimizer in oracle 11g by wwf from ebay COC
Optimizer in oracle 11g by wwf from ebay COCOptimizer in oracle 11g by wwf from ebay COC
Optimizer in oracle 11g by wwf from ebay COC
 
MariaDB Temporal Tables
MariaDB Temporal TablesMariaDB Temporal Tables
MariaDB Temporal Tables
 
Les09 Manipulating Data
Les09 Manipulating DataLes09 Manipulating Data
Les09 Manipulating Data
 
SAV
SAVSAV
SAV
 
Les01
Les01Les01
Les01
 
PostgreSQL 9.5 Features
PostgreSQL 9.5 FeaturesPostgreSQL 9.5 Features
PostgreSQL 9.5 Features
 
Sql queries
Sql queriesSql queries
Sql queries
 
Les11 Including Constraints
Les11 Including ConstraintsLes11 Including Constraints
Les11 Including Constraints
 
Flashback (Practical Test)
Flashback (Practical Test)Flashback (Practical Test)
Flashback (Practical Test)
 
Oracle flashback
Oracle flashbackOracle flashback
Oracle flashback
 

Último

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfChris Hunter
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfSanaAli374401
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 

Último (20)

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 

12c Database TEMPORAL VALIDITY & FLASHBACK ARCHIVE Testing

  • 1. ----------------------------------------TEMPORAL VALIDITY Testing ---------------------------------------The Temporal Validity feature is relate to valid time dimension for a table via PERIOD FOR clause which adds a time dimension to each row in the table consisting of two date-time columns to indicate validity of data. By this feature we can hidden data that is no longer valid or (inactive) or old from queries. This is an addition over timestamp columns in table for potential future requirements base on time range. SQL> connect monowar/password Connected. SQL> select table_name from user_tables; TABLE_NAME -------------------------------------------------------------------------------TEST_ARCH CP_TEST_ARCH TV_EMP TEST_TV SQL> desc TEST_TV Name Null? Type ----------------------------------------- -------- ---------------------------EMPNO NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) SQL> select count (*) from TEST_TV; COUNT(*) ---------14 SQL> alter table TEST_TV add period for recoder_time; Table altered. SQL> desc TEST_TV Name Null? Type ----------------------------------------- -------- ---------------------------EMPNO NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) SQL> select table_name, column_name 2 from dba_tab_cols 3 where owner='MONOWAR' and table_name='TEST_TV'; TABLE_NAME COLUMN_NAME -------------------------------------------------------------------------------TEST_TV EMPNO TEST_TV ENAME TEST_TV JOB TEST_TV TEST_TV TEST_TV TEST_TV TEST_TV TEST_TV TEST_TV TEST_TV MGR HIREDATE SAL COMM DEPTNO RECODER_TIME_START RECODER_TIME_END RECODER_TIME
  • 2. 11 rows selected. SQL> select column_name,data_type from user_tab_cols where table_name='TEST_TV' and hidden_column='YES'; COLUMN_NAME DATA_TYPE -------------------------------------------------------------------------------RECODER_TIME_START TIMESTAMP(6) WITH TIME ZONE RECODER_TIME_END TIMESTAMP(6) WITH TIME ZONE RECODER_TIME NUMBER We can use PERIOD FOR clause or use the DBMS_FLASHBACK_ARCHIVE procedure with the SELECT statement to filter on valid-time columns . Testing with PERIOD FOR +++++++++++++++++++++++ SQL> connect monowar/password Connected. SQL> show user; USER is "MONOWAR" SQL> create table TV_EMP ( 2 EMPNO NUMBER(7), 3 FULLNAME VARCHAR2(80), 4 USER_TIME_START DATE, 5 USER_TIME_END DATE, 6 PERIOD FOR USER_TIME (USER_TIME_START,USER_TIME_END)); Table created. Check that implicit constraint has been created with valid-time dimension ------------------------------------------------------------------------SQL> select CONSTRAINT_NAME CN, CONSTRAINT_TYPE CT,GENERATED, VALIDATED from dba_constraints where table_name='TV_EMP'; CN CT GENERATED VALIDATED - -------------- --------------------------USER_TIME34EC4D C USER NAME VALIDATED SQL> insert into tv_emp 2 values (301,'EAMMON',to_date('27-JAN-2011','dd-mon-yyyy'), 3 to_date('31-JUL-2013','dd-mon-yyyy')); 1 row created. SQL> commit; Commit complete. SQL> select table_name, column_name from dba_tab_cols where owner='MONOWAR' and table_name='TV_EMP'; TABLE_NAME COLUMN_NAME -----------------------------------TV_EMP USER_TIME TV_EMP EMPNO TV_EMP FULLNAME TV_EMP USER_TIME_START TV_EMP USER_TIME_END Diassociate the columns of valid-time dimension -------------------------------------------------------------SQL> alter table TV_EMP DROP (period for user_time); Table altered. SQL> select table_name, column_name 2 from dba_tab_cols 3 where owner='MONOWAR' and table_name='TV_EMP';
  • 3. TABLE_NAME COLUMN_NAME -------------------------------------------------------------------------------TV_EMP EMPNO TV_EMP FULLNAME TV_EMP USER_TIME_START TV_EMP USER_TIME_END Constraint Check ----------------SQL> select CONSTRAINT_NAME CN, CONSTRAINT_TYPE CT,GENERATED, VALIDATED from dba_constraints where table_name='TV_EMP'; no rows selected Create a new valid-time diemnsion without column names (USER_TIME_START,USER_TIME_END) SQL> alter table TV_EMP add period for valid_time; Table altered. SQL> desc TV_EMP Name Null? Type ----------------------------------------- -------- ---------------------------EMPNO NUMBER(7) FULLNAME VARCHAR2(80) USER_TIME_START DATE USER_TIME_END DATE Note: USER_TIME_START,USER_TIME_END are still there as part of user's definition of the table. Check the table columns -------------------------------SQL> select table_name, column_name 2 from dba_tab_cols 3 where owner='MONOWAR' and table_name='TV_EMP'; TABLE_NAME COLUMN_NAME -------------------------------------------------------------------------------TV_EMP VALID_TIME_START TV_EMP EMPNO TV_EMP FULLNAME TV_EMP USER_TIME_START TV_EMP USER_TIME_END TV_EMP VALID_TIME_END TV_EMP VALID_TIME 7 rows selected. Testing with DBMS_FLASHBACK_ARCHIVE +++++++++++++++++++++++++++++++++++++ The DBMS_FLASHBACK_ARCHIVE package to set the time visibility of the data for a given period of time or data which is currently valid within the valid time period at the session level. For testing with very minimum data, I have created a TEST_TV based on SCOTT.emp table. SQL> update TEST_TV set RECODER_TIME_START=SYSDATE; 14 rows updated. SQL> update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE >'23-JAN-82'; 2 rows updated. SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('CURRENT'); PL/SQL procedure successfully completed.
  • 4. So now when we do a count(*) from the table TEST_TV, it only returns the rows which we have deemed to be active or current and not all the rows (here 12/14). SQL> select count(*) from TEST_TV; COUNT(*) ---------12 I am going to extent the time period for more rows NOTE: SQL> update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE <'23-JAN-82'; update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE <'23-JAN-82' * ERROR at line 1: ORA-00904: "RECODER_TIME_END": invalid identifier SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('CURRENT'); PL/SQL procedure successfully completed. SQL> update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE >'28-SEP-81'; update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE >'28-SEP-81' * ERROR at line 1: ORA-00904: "RECODER_TIME_END": invalid identifier Now set the visibility of the temporal data to the full table and update: SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('ALL'); PL/SQL procedure successfully completed. SQL> update TEST_TV set RECODER_TIME_END=SYSDATE where HIREDATE >'28-SEP-81'; 6 rows updated. SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('CURRENT'); PL/SQL procedure successfully completed. SQL> select count(*) from TEST_TV; COUNT(*) ---------8 This time select statement is getting less number (8) of rows than last time (12). Put it back normal state -----------------------------SQL> EXECUTE DBMS_FLASHBACK_ARCHIVE.enable_at_valid_time('ALL'); PL/SQL procedure successfully completed. SQL> select count(*) from TEST_TV; COUNT(*) ---------14 ++++++++++++++++++++++++++ FLASHBACK ARCHIVE ++++++++++++++++++++++++++ SQL> alter database datafile '/BPELAIT2/MONDB01/MONDB01/test_arch01.dbf' resize 500M; Database altered. SQL> connect monowar/password Connected.
  • 5. SQL> create table FA_sales as select * from sh.sales; Table created. SQL> create Flashback Archive test_nfaopt tablespace TEST_ARCH RETENTION 10 DAY NO OPTIMIZE DATA; Flashback archive created. [Ref: http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_5011.htm] SQL> alter table FA_sales flashback archive test_nfaopt; Table altered. Set the context level collection for FA_sales table -----------------------------------------------SQL> exec dbms_flashback_archive.set_context_level('TYPICAL'); PL/SQL procedure successfully completed. Make some update on Flashback table from other schema ----------------------------------------------------SQL> conn sh/sh Connected. SQL> update monowar.FA_sales set CUST_ID=3333 where CUST_ID=8865; 243 rows updated. SQL> commit; Commit complete. Check the flashback table status ---------------------------------------SQL> select * from dba_flashback_archive_tables; TABLE_NAME -------------------------------------------------------------------------------OWNER_NAME -------------------------------------------------------------------------------FLASHBACK_ARCHIVE_NAME -------------------------------------------------------------------------------ARCHIVE_TABLE_NAME STATUS ----------------------------------------------------- ------------FA_SALES MONOWAR TEST_NFAOPT SYS_FBA_HIST_110567 ENABLED --- NOTE: DBA_FLASHBACK_ARCHIVE_TABLES for NO OPTIMIZE DATA Truncate the table SQL> truncate table MONOWAR.FA_SALES; Table truncated. SQL> select count (*) from MONOWAR.FA_SALES; COUNT(*) ---------0 Check data on flashback archive -------------------------------SQL> select count (*) from MONOWAR.SYS_FBA_HIST_110567; COUNT(*)
  • 6. ---------919086 Retrieve the Transaction ID from flashback archive table ------------------------------------------------------SQL> select distinct XID from monowar.SYS_FBA_HIST_110567; XID ---------------0004001500000A16 select DBMS_flashback_archive.Get_sys_context ('0004001500000A16','USERENV','SESSION_USER') as SUSPECTUSR From MONOWAR.FA_SALES versions between scn minvalue and maxvalue where num=1; SQL> select DBMS_flashback_archive.Get_sys_context 2 ('0004001500000A16','USERENV','SESSION_USER') as SUSPECTUSR 3 ,versions_XID,VERSIONS_starttime,versions_endtime 4 From MONOWAR.FA_SALES 5 versions between scn minvalue and maxvalue SUSPECTUSR VERSIONS_XID VERSIONS_STARTTIME VERSIONS_ENDTIME --------------------------------------------------------------------------SH 01-NOV-13 04.05.56.000000000 PM CLEAN UP --------------SQL> alter table MONOWAR.FA_SALES NO flashback archive; Table altered. SQL> drop flashback archive test_nfaopt; Flashback archive dropped.