创建Temporal Validity有两种方法一是自己指定列,一是让oracle自己指定 手工指定 CREATE TABLE Temporal_ValidityEMPNO NUMBER, SALARY NUMBER, DEPTID NUMBER, NAME VARCHAR2100, USER_TIME_START DATE, USER_TIME_END DATE, PERIOD FOR USER_TIME USER_TI

创建Temporal Validity有两种方法一是自己指定列,一是让oracle自己指定

手工指定CREATE TABLE Temporal_Validity

(EMPNO NUMBER, SALARY NUMBER, DEPTID NUMBER,

NAME VARCHAR2(100),

USER_TIME_START DATE,

USER_TIME_END DATE,

PERIOD FOR USER_TIME

(USER_TIME_START, USER_TIME_END));

SQL> SELECT OWNER,TABLE_NAME,COLUMN_NAME,COLUMN_ID FROM DBA_TAB_COLS WHERE TABLE_NAME=UPPER('Temporal_Validity');

: TEMPORAL_VALIDITY

TABLE COLUMN

Owner Name COLUMN_ID

---------- ------------------------------ ---------

TRAVEL USER_TIME_END 6

TRAVEL USER_TIME_START 5

TRAVEL NAME 4

TRAVEL DEPTID 3

TRAVEL SALARY 2

TRAVEL EMPNO 1

TRAVEL USER_TIME

7 ROWS selected.

SQL> col NAME FOR a15

SQL> col DEFAULT$ FOR a10

SQL> col SPARE4 FOR a1

SQL> col SPARE5 FOR a1

SQL> col SPARE6 FOR a1

SQL> SELECT * FROM sys.col$ WHERE obj#=92087;

OBJ# COL# SEGCOL# SEGCOLLENGTH OFFSET NAME TYPE# LENGTH FIXEDSTORAGE PRECISION# SCALE NULL$ DEFLENGTH DEFAULT$ INTCOL# PROPERTY CHARSETID CHARSETFORM EVALEDITION# UNUSABLEBEFORE# UNUSABLEBEGINNING# SPARE1 SPARE2 SPARE3 S S S SPARE7 SPARE8

---------- ---------- ---------- ------------ ---------- --------------- ---------- ---------- ------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------- ------------ --------------- ------------------ ---------- ---------- ---------- - - - ---------- ----------

92087 0 0 22 0 USER_TIME 2 22 0 0 0 9 430120635 1 65576 0 0 0 0 0 0

92087 1 1 22 0 EMPNO 2 22 0 0 2 0 0 0 0 0 0 0

92087 2 2 22 0 SALARY 2 22 0 0 3 0 0 0 0 0 0 0

92087 3 3 22 0 DEPTID 2 22 0 0 4 0 0 0 0 0 0 0

92087 4 4 100 0 NAME 1 100 0 0 5 0 873 1 0 0 0 100

92087 5 5 7 0 USER_TIME_START 12 7 0 0 6 0 0 0 0 0 0 0

92087 6 6 7 0 USER_TIME_END 12 7 0 0 7 0 0 0 0 0 0 0

7 ROWS selected.

SQL> col COLUMN_NAME FOR a20

SQL> col TABLE_NAME FOR a15

SQL> col CONSTRAINT_NAME FOR a20 USER_TIME_START ENABLED VALIDATED

SQL> col R_CONSTRAINT_NAME FOR a20

SQL> @cons

SHOW constraints ON TABLE %TEMPORAL_VALIDITY%...

OWNER TABLE_NAME CONSTRAINT_NAME CO R_CONSTRAINT_NAME COLUMN_NAME POSITION STATUS VALIDATED

------------------------------ --------------- -------------------- -- -------------------- ------------------------------ ---------- ---------------- --------------------------

TRAVEL TEMPORAL_VALIDI USER_TIMEA31EBB C USER_TIME ENABLED VALIDATED

TY

TRAVEL USER_TIMEA31EBB C USER_TIME_END ENABLED VALIDATED

TRAVEL USER_TIMEA31EBB C USER_TIME_START ENABLED VALIDATED

SQL>

SQL> @DESC TEMPORAL_VALIDITY

Name NULL? TYPE

------------------------------- -------- ----------------------------

1 EMPNO NUMBER

2 SALARY NUMBER

3 DEPTID NUMBER

4 NAME VARCHAR2(100)

5 USER_TIME_START DATE

6 USER_TIME_END DATE

手工指定是正常列,可以通过SELECT * 来查看

系统自动

SQL>

SQL> CREATE TABLE TEMPORAL_VALIDITY2

2 ( empno NUMBER, salary NUMBER, deptid NUMBER, name VARCHAR2(100),

3 PERIOD FOR user_time);

TABLE created.

SQL> @DESC TEMPORAL_VALIDITY2

Name NULL? TYPE

------------------------------- -------- ----------------------------

1 EMPNO NUMBER

2 SALARY NUMBER

3 DEPTID NUMBER

4 NAME VARCHAR2(100)

SQL>

SQL> col TABLE_NAME FOR a25

SQL> col OWNER FOR a10

SQL> SELECT OWNER,TABLE_NAME,COLUMN_NAME,COLUMN_ID FROM DBA_TAB_COLS WHERE TABLE_NAME=UPPER('Temporal_Validity2');

OWNER TABLE_NAME COLUMN_NAME COLUMN_ID

---------- ------------------------- -------------------- ----------

TRAVEL TEMPORAL_VALIDITY2 NAME 4

TRAVEL DEPTID 3

TRAVEL SALARY 2

TRAVEL EMPNO 1

TRAVEL USER_TIME

TRAVEL USER_TIME_END

TRAVEL USER_TIME_START

7 ROWS selected.

SQL>

SQL> @o TEMPORAL_VALIDITY2

owner object_name object_type STATUS OID D_OID CREATED LAST_DDL_TIME

------------------------- ------------------------------ ------------------ --------- ---------- ---------- ----------------- -----------------

TRAVEL TEMPORAL_VALIDITY2 TABLE VALID 92089 92089 20140526 22:41:37 20140526 22:41:37

SQL> SELECT * FROM sys.col$ WHERE obj#=92089;

OBJ# COL# SEGCOL# SEGCOLLENGTH OFFSET NAME TYPE# LENGTH FIXEDSTORAGE PRECISION# SCALE NULL$ DEFLENGTH DEFAULT$ INTCOL# PROPERTY CHARSETID CHARSETFORM EVALEDITION# UNUSABLEBEFORE# UNUSABLEBEGINNING# SPARE1 SPARE2 SPARE3 S S S SPARE7 SPARE8

---------- ---------- ---------- ------------ ---------- --------------- ---------- ---------- ------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------- ------------ --------------- ------------------ ---------- ---------- ---------- - - - ---------- ----------

92089 0 1 13 0 USER_TIME_START 181 13 0 6 0 1 32 0 0 0 6 0 0

92089 0 2 13 0 USER_TIME_END 181 13 0 6 0 2 32 0 0 0 6 0 0

92089 0 0 22 0 USER_TIME 2 22 0 0 0 9 430191669 3 65576 0 0 0 0 0 0

92089 1 3 22 0 EMPNO 2 22 0 0 4 0 0 0 0 0 0 0

92089 2 4 22 0 SALARY 2 22 0 0 5 0 0 0 0 0 0 0

92089 3 5 22 0 DEPTID 2 22 0 0 6 0 0 0 0 0 0 0

92089 4 6 100 0 NAME 1 100 0 0 7 0 873 1 0 0 0 100

7 ROWS selected.

SQL> @cons

SHOW constraints ON TABLE %TEMPORAL_VALIDITY2%...

OWNER TABLE_NAME CONSTRAINT_NAME CO R_CONSTRAINT_NAME COLUMN_NAME POSITION STATUS VALIDATED

------------------------------ ------------------------- -------------------- -- -------------------- ------------------------------ ---------- ---------------- --------------------------

TRAVEL TEMPORAL_VALIDITY2 USER_TIMEA43435 C USER_TIME_END ENABLED VALIDATED

TRAVEL USER_TIMEA43435 C USER_TIME_START ENABLED VALIDATED

SQL>

系统自动创建了2个隐藏列USER_TIME_START,USER_TIME_END

插入数据

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (101,1900,90,'ADAM',to_date('2000-01-01', 'yyyy-mm-dd') ,to_date('2004-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (102,2900,90,'ADAM',to_date('2001-01-01', 'yyyy-mm-dd') ,to_date('2005-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (103,3900,90,'ADAM',to_date('2002-01-01', 'yyyy-mm-dd') ,to_date('2006-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (104,4900,90,'ADAM',to_date('2003-01-01', 'yyyy-mm-dd') ,to_date('2007-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (105,5900,90,'ADAM',to_date('2004-01-01', 'yyyy-mm-dd') ,to_date('2008-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (106,6900,90,'ADAM',to_date('2005-01-01', 'yyyy-mm-dd') ,to_date('2009-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (107,7900,90,'ADAM',to_date('2006-01-01', 'yyyy-mm-dd') ,to_date('2010-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (108,8900,90,'ADAM',to_date('2007-01-01', 'yyyy-mm-dd') ,to_date('2011-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (109,9900,90,'ADAM',to_date('2008-01-01', 'yyyy-mm-dd') ,to_date('2012-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (110,1900,90,'ADAM',to_date('2009-01-01', 'yyyy-mm-dd') ,to_date('2014-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (111,2900,90,'ADAM',to_date('2010-01-01', 'yyyy-mm-dd') ,to_date('2011-05-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (112,3900,90,'ADAM',to_date('2011-01-01', 'yyyy-mm-dd') ,to_date('2011-08-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (113,4900,90,'ADAM',to_date('2012-01-01', 'yyyy-mm-dd') ,to_date('2013-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (114,5900,90,'ADAM',to_date('2013-01-01', 'yyyy-mm-dd') ,to_date('2014-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (115,6900,90,'ADAM',to_date('2014-01-01', 'yyyy-mm-dd') ,to_date('2015-01-01', 'yyyy-mm-dd'));

1 ROW created.

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (116,7900,90,'ADAM',to_date('2002-04-01', 'yyyy-mm-dd') ,to_date('2002-06-01', 'yyyy-mm-dd'));om

2

SQL> INSERT INTO TEMPORAL_VALIDITY2 (empno , salary , deptid , name , USER_TIME_START, USER_TIME_END) VALUES (116,7900,90,'ADAM',to_date('2002-04-01', 'yyyy-mm-dd') ,to_date('2002-06-01', 'yyyy-mm-dd'))

2 ;

1 ROW created.

SQL> commit;

Commit complete.

SQL> SELECT * FROM TEMPORAL_VALIDITY2;

EMPNO SALARY DEPTID NAME

---------- ---------- ---------- ---------------

101 1900 90 ADAM

101 1900 90 ADAM

102 2900 90 ADAM

103 3900 90 ADAM

104 4900 90 ADAM

105 5900 90 ADAM

106 6900 90 ADAM

107 7900 90 ADAM

108 8900 90 ADAM

109 9900 90 ADAM

110 1900 90 ADAM

111 2900 90 ADAM

112 3900 90 ADAM

113 4900 90 ADAM

114 5900 90 ADAM

115 6900 90 ADAM

116 7900 90 ADAM

SQL> SELECT NAME,

2 to_char(USER_TIME_START, 'yyyy-mm-dd'), to_char(USER_TIME_END, 'yyyy-mm-dd')

3 FROM TEMPORAL_VALIDITY2 ORDER BY 2;

NAME TO_CHAR(USER_TIME_ST TO_CHAR(USER_TIME_EN

--------------- -------------------- --------------------

ADAM 2000-01-01 2011-12-31

ADAM 2000-01-01 2004-01-01

ADAM 2001-01-01 2005-01-01

ADAM 2002-01-01 2006-01-01

ADAM 2002-04-01 2002-06-01

ADAM 2003-01-01 2007-01-01

ADAM 2004-01-01 2008-01-01

ADAM 2005-01-01 2009-01-01

ADAM 2006-01-01 2010-01-01

ADAM 2007-01-01 2011-01-01

ADAM 2008-01-01 2012-01-01

ADAM 2009-01-01 2014-01-01

ADAM 2010-01-01 2011-05-01

ADAM 2011-01-01 2011-08-01

ADAM 2012-01-01 2013-01-01

ADAM 2013-01-01 2014-01-01

ADAM 2014-01-01 2015-01-01

示例1

SQL> SELECT NAME,

2 to_char(USER_TIME_START, 'yyyy-mm-dd'), to_char(USER_TIME_END, 'yyyy-mm-dd')

3 FROM TEMPORAL_VALIDITY2 AS OF PERIOD FOR USER_TIME

4 to_date('2004-01-01', 'yyyy-mm-dd') ORDER BY 2;

NAME TO_CHAR(USER_TIME_ST TO_CHAR(USER_TIME_EN

--------------- -------------------- --------------------

ADAM 2000-01-01 2011-12-31

ADAM 2001-01-01 2005-01-01

ADAM 2002-01-01 2006-01-01

ADAM 2003-01-01 2007-01-01

ADAM 2004-01-01 2008-01-01

The query displays all whose

示例2

SQL> SELECT NAME,

2 to_char(USER_TIME_START, 'yyyy-mm-dd'), to_char(USER_TIME_END, 'yyyy-mm-dd')

3 FROM TEMPORAL_VALIDITY2 versions PERIOD FOR USER_TIME

4 BETWEEN to_date('2004-01-01', 'yyyy-mm-dd')

5 AND to_date('2008-01-01', 'yyyy-mm-dd')

6 ORDER BY 2;

NAME TO_CHAR(USER_TIME_ST TO_CHAR(USER_TIME_EN

--------------- -------------------- --------------------

ADAM 2000-01-01 2011-12-31

ADAM 2001-01-01 2005-01-01

ADAM 2002-01-01 2006-01-01

ADAM 2003-01-01 2007-01-01

ADAM 2004-01-01 2008-01-01

ADAM 2005-01-01 2009-01-01

ADAM 2006-01-01 2010-01-01

ADAM 2007-01-01 2011-01-01

ADAM 2008-01-01 2012-01-01

The query displays all whose USER_TIME_START is less than or equal to ‘2004-01-01′ and USER_TIME_END greater than or equal to ‘2008-01-01′‘.

示例3

SQL> EXEC DBMS_FLASHBACK_ARCHIVE.ENABLE_AT_VALID_TIME('CURRENT')

PL/SQL PROCEDURE successfully completed.

SQL> SELECT NAME,

2 to_char(USER_TIME_START, 'yyyy-mm-dd'), to_char(USER_TIME_END, 'yyyy-mm-dd')

3 FROM TEMPORAL_VALIDITY2 ORDER BY 2;

NAME TO_CHAR(USER_TIME_ST TO_CHAR(USER_TIME_EN

--------------- -------------------- --------------------

ADAM 2014-01-01 2015-01-01

示例4

SQL> EXEC DBMS_FLASHBACK_ARCHIVE.ENABLE_AT_VALID_TIME('ALL')

PL/SQL PROCEDURE successfully completed.

SQL> SELECT NAME,

2 to_char(USER_TIME_START, 'yyyy-mm-dd'), to_char(USER_TIME_END, 'yyyy-mm-dd')

3 FROM TEMPORAL_VALIDITY2 ORDER BY 2;

NAME TO_CHAR(USER_TIME_ST TO_CHAR(USER_TIME_EN

--------------- -------------------- --------------------

ADAM 2000-01-01 2011-12-31

ADAM 2000-01-01 2004-01-01

ADAM 2001-01-01 2005-01-01

ADAM 2002-01-01 2006-01-01

ADAM 2002-04-01 2002-06-01

ADAM 2003-01-01 2007-01-01

ADAM 2004-01-01 2008-01-01

ADAM 2005-01-01 2009-01-01

ADAM 2006-01-01 2010-01-01

ADAM 2007-01-01 2011-01-01

ADAM 2008-01-01 2012-01-01

ADAM 2009-01-01 2014-01-01

ADAM 2010-01-01 2011-05-01

ADAM 2011-01-01 2011-08-01

ADAM 2012-01-01 2013-01-01

ADAM 2013-01-01 2014-01-01

ADAM 2014-01-01 2015-01-01

17 ROWS selected.

oracle timeatamp,oracle12c_Temporal Validity相关推荐

  1. Oracle 12C -- temporal validity

    temporal validity需要在创建表的时候使用一个vaild-time维度(包含时间起始和结束) 创建有valid-time维度的表 (1)显式指定两个date-time列 SQL> ...

  2. oracle没什么没有备份,怎么恢复没有备份的Oracle数据库

    数据文件丢失,没有备份,拥有文件创建以来的全部归档,使用RMAN恢复,报错RMAN-06102: no channel to restore a backup or copy of log threa ...

  3. Oracle E-Business Suite Maintenance Guide Release 12.2(Patching Utilities)

    更多内容参考: http://docs.oracle.com/cd/E51111_01/current/acrobat/122ebsmt.zip Oracle Patch Application As ...

  4. Oracle Linux Server release 6.3 下安装JDK

    1.操作系统环境 Last login: Fri Feb 21 18:47:52 2014 from 192.168.56.1 [root@datacenter ~]# uname -a Linux ...

  5. oracle 监听加密 tcps,通过oracle wallet配置listener tcps加密

    一 配置客户端和服务端的wallet 2端配置方法一致,相互添加证书 orapki wallet create -wallet "/u01/oracle/wallet" -pwd ...

  6. Oracle 使用DBMS_SCHEDULER创建定时任务

    为什么80%的码农都做不了架构师?>>>    在Oracle10g里面,已经不赞成使用DBMS_JOB,推荐使用DBMS_SCHEDULER,它的健壮为调度提供更好的规划和结构.下 ...

  7. Oracle ILM相关(Information lifecycle management)

    一. 信息生命周期管理简介 1. 概念 ILM(Information lifecycle management)这个概念诞生于上世纪60-70年代,由StorageTek(2010年被Oracle收 ...

  8. oracle12c生命周期,Oracle 12c 新特性之: ILM 数据生命周期管理

    张乐奕 云和恩墨副总经理,Oracle ACE总监,ACOUG 联合创始人 ILM 全称是 Information Lifecycle Management,意思是信息生命周期管理,听上去很高端洋气的 ...

  9. Oracle 19c VLDB and Partitioning Guide 第5章:管理和维护基于时间的信息 读书笔记

    本文为Oracle 19c VLDB and Partitioning Guide第5章Managing and Maintaining Time-Based Information的读书笔记. Or ...

  10. oracle 11g r2 Rac install

    查看操作系统版本: [root@rac1 ~]# cat /etc/issue Enterprise Linux Enterprise Linux AS release 4 (October Upda ...

最新文章

  1. 蓝牙写入数据库_蓝牙 数据写入 简单易懂版(适合没写过蓝牙的看)
  2. BZOJ4475: [Jsoi2015]子集选取【找规律】【数学】
  3. hutool获取5天前的日期_JavaSE基础:18个Java8处理日期的新花样,肯定没用过!
  4. jmeter压测之 监控--nmon
  5. android studio设置JDK路径
  6. clickhouse注入的利用
  7. Linux(Centos7)下使用RPM方式安装MySQL5.7
  8. 5.一个非常好用的扒站工具IDM
  9. 通过cmd进行文件格式的转换
  10. 9月9日资讯 星期四 农历八月(小) 初三
  11. 弗吉尼亚理工计算机科学排名,弗吉尼亚理工大学计算机科学专业
  12. winscp登录主机拒绝_winscp连接被拒绝怎么解决
  13. Perl Regular Expression Syntax Perl的正则表达式语法
  14. (二十三)SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?
  15. ARM-(一)定时器:PWM定时器,看门狗WTD定时器
  16. aix 安装oracle smit install_latest,在AIX 5L上快速部署Oracle
  17. NanoDet目标检测新网络!比YOLO跑的还快
  18. thinkPHP/fastadmin topthink/think-queue 多进程
  19. 收割 offer 之前需要知道的
  20. python中倒背如流_八字基础知识--倒背如流篇

热门文章

  1. 初中OJ1998【2015.8.3普及组模拟赛】饥饿的WZK(hunger)
  2. Windows 下网卡对802.1Q tag 的支持
  3. 如何绘制论文中的图表
  4. 计算机网络谢希仁第七版课后习题答案(第七章)
  5. 冷静 仔细 认真 分析
  6. matlab计算复活节概率,复活节是几月几日_计算复活节日期_我爱历史网
  7. 【记录】PR|一些使用技巧记录
  8. 安卓pdf阅读器_推荐一款手机PDF阅读器、编辑器xodo docs安卓版
  9. 微信公众平台移动版开始内测了
  10. 阿里巴巴入选的JCP最高执行委员会,何方神圣?