oracle12c_Temporal Validity
创建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
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′‘.
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
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.
原文地址:oracle12c_Temporal Validity, 感谢原作者分享。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

ogive图形以图形化方式表示一组数据的累积分布函数(CDF),有时也称为累积频率曲线。它用于检查数据分布并发现模式和趋势。Matplotlib、Pandas和Numpy是Python提供的一些库和工具,用于创建ogive图形。在本教程中,我们将看看如何使用Matplotlib在Python中生成ogive图形。要创建一个累积曲线图,我们需要导入所需的库。在这个例子中,我们将使用Matplotlib,Pandas和Numpy。Matplotlib是一个流行的数据可视化库,用于在Python中创建

常量和变量用于在编程中存储数据值。变量通常指的是可以随时间变化的值。而常量是一种变量类型,其值在程序执行期间不能被改变。在Python中只有六个内置常量可用,它们是False、True、None、NotImplemented、Ellipsis(...)和__debug__。除了这些常量之外,Python没有任何内置数据类型来存储常量值。示例下面演示了常量的示例-False=100输出SyntaxError:cannotassigntoFalseFalse是Python中的内置常量,用于存储布尔值

如何在iPhone上个性化电话Apple的iOS17引入了一项名为“联系人海报”的新功能,可让您在iPhone上个性化呼叫屏幕的外观。此功能允许您使用所选的照片、颜色、字体和拟我表情作为联系人卡片设计海报。因此,当您进行通话时,您的自定义图像将完全按照您的设想显示在收件人的iPhone上。您可以选择与所有保存的联系人共享您唯一的联系人海报,也可以选择可以看到它的人。同样,在通话交流期间,您还将看到其他人的联系人海报。此外,Apple允许您为单个联系人设置特定的联系人照片,使来自这些联系人的呼叫与

本文将引起您的兴趣,如果您有意在Windows上使用GIMP进行像素艺术创作。GIMP是一款著名的图形编辑软件,不仅免费开源,还能帮助用户轻松创建出美丽的图像和设计。除了适用于初学者和专业设计师外,GIMP也可以用于制作像素艺术,这种数字艺术形式是利用像素作为唯一构建块来进行绘制和创作的。如何在GIMP中创建像素艺术以下是在WindowsPC上使用GIMP创建像素图片的主要步骤:下载并安装GIMP,然后启动应用程序。创建一个新的形象。调整宽度和高度的大小。选择铅笔工具。将笔刷类型设置为像素。设置

标题:真我手机新手指南:如何在真我手机上创建文件夹?在当今社会,手机已经成为人们生活中必不可少的工具。而真我手机作为一款备受欢迎的智能手机品牌,其简洁、实用的操作系统备受用户喜爱。在使用真我手机的过程中,很多人可能会遇到需要整理手机中的文件和应用的情况,而创建文件夹就是一种有效的方式。本文将介绍如何在真我手机上创建文件夹,帮助用户更好地管理自己的手机内容。第

很多朋友表示想知道在格力+软件里该怎么去创建家庭,下面为大家带来了操作方法,想要了解的朋友和我一起来看看吧。首先,打开手机上的格力+软件,并登录。接着,在页面底部的选项栏中,点击最右边的“我的”选项,即可进入个人账户页面。2.来到我的页面后,在“家庭”下方的选项里有一个“创建家庭”,找到后在它的上面点击进入。3.接下来跳转到创建家庭的页面里,根据提示在输入框里输入要设置的家庭名称,输入好后在右上角点击“保存”按钮。4.最后在页面下方会弹出一个“保存成功”的提示,代表家庭已经成功创建好了。

在本文中,我们将学习如何使用python创建用户界面。什么是图形用户界面?术语“图形用户界面”(或“GUI”)是指一组可以在计算机软件中交互以显示信息和交互的视觉元素项目。为了响应人类输入,对象可能会改变颜色、大小和可见度等外观特征。图标、光标和按钮等图形组件可以通过音频或视觉效果(如透明度)进行增强,以创建图形用户界面(GUI)。如果您希望更多人使用您的平台,您需要确保它具有良好的用户界面。这是因为这些因素的结合会极大地影响您的应用或网站提供的服务质量。Python被开发人员广泛使用,因为它提

如何使用Highcharts创建甘特图表,需要具体代码示例引言:甘特图是一种常用于展示项目进度和时间管理的图表形式,能够直观地展示任务的开始时间、结束时间和进度。Highcharts是一款功能强大的JavaScript图表库,提供了丰富的图表类型和灵活的配置选项。本文将介绍如何使用Highcharts创建甘特图表,并给出具体的代码示例。一、Highchart
