DBZ-4485 Support Oracle FLASHBACK TABLE syntax

This commit is contained in:
Chris Cranford 2022-01-10 12:13:59 -05:00 committed by Gunnar Morling
parent 2ce8921872
commit 48c3244c2f
2 changed files with 42 additions and 0 deletions

View File

@ -104,6 +104,8 @@ unit_statement
| grant_statement
| procedure_call
| flashback_table
;
// DDL -> SQL Statements for Stored PL/SQL Units
@ -3323,6 +3325,34 @@ body
: BEGIN seq_of_statements (EXCEPTION exception_handler+)? END label_name?
;
flashback_table
: FLASHBACK TABLE (tableview_name (',' tableview_name)*) TO (
flashback_scn_clause |
flashback_timestamp_clause |
flashback_restore_point_clause |
flashback_before_drop_clause)
;
flashback_scn_clause
: SCN expression flashback_triggers_clause?
;
flashback_timestamp_clause
: TIMESTAMP expression flashback_triggers_clause?
;
flashback_restore_point_clause
: RESTORE POINT expression flashback_triggers_clause?
;
flashback_before_drop_clause
: BEFORE DROP (RENAME TO tableview_name)?
;
flashback_triggers_clause
: (ENABLE | DISABLE)? TRIGGERS
;
// Body Specific Clause
exception_handler

View File

@ -0,0 +1,12 @@
-- Flash back
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to scn 1801245678952;
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to scn 1801245678952 enable triggers;
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to scn 1801245678952 disable triggers;
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to timestamp '2021-01-01 00:00:00';
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to timestamp '2021-01-01 00:00:00' enable triggers;
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to timestamp '2021-01-01 00:00:00' disable triggers;
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to restore point 'abc';
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to restore point 'abc' enable triggers;
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to restore point 'abc' disable triggers;
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to before drop;
flashback table IDENTITYDB."BIN$06LS4aSFhuLgU6UJ/AqoVA==$0" to before drop rename to "tableb";