CREATE TABLE TESTTAB (
ID NUMBER GENERATED ALWAYS AS IDENTITY,
VAL VARCHAR2(20)
)
Table created.
INSERT ALL
INTO TESTTAB (VAL) VALUES ('VAL1')
INTO TESTTAB (VAL) VALUES ('VAL2')
INTO TESTTAB (VAL) VALUES ('VAL3')
SELECT 1 FROM DUAL
3 row(s) inserted.
CREATE FUNCTION AS_OF (p_tab in DBMS_TF.TABLE_T, p_time in DATE) RETURN VARCHAR2 SQL_MACRO IS
BEGIN
RETURN 'SELECT * FROM p_tab AS OF TIMESTAMP(p_time)';
END AS_OF;
Function created.
declare
n number;
begin
for i in 1 .. 500000 loop
n := ln(power(sqrt(i), 3));
end loop;
end;
Statement processed.
DELETE FROM TESTTAB WHERE VAL = 'VAL2'
1 row(s) deleted.
SELECT * FROM TESTTAB
ID | VAL | 1 | VAL1 | 1 | VAL3 |
---|
SELECT * FROM TESTTAB AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '2' SECOND)
ID | VAL | 1 | VAL1 | 1 | VAL2 | 1 | VAL3 |
---|
SELECT * FROM AS_OF(TESTTAB,SYSTIMESTAMP - INTERVAL '2' SECOND)
ORA-00984: column not allowed hereMore Details: https://docs.oracle.com/error-help/db/ora-00984