【12c】新特性:Oracle 12c Temporal Validity 时间有效性

本文介绍了Oracle 12c新特性——Temporal Validity,它允许在不增加额外列的情况下实现时间有效性的判断。通过创建表和指定有效时间维度,可以轻松管理记录的生效时间段。文章详细演示了创建表、插入测试数据、不同查询方式(普通查询、AS OF、VERSIONS BETWEEN)以及会话级别的可见性控制,帮助开发者理解和应用这一特性。
摘要由CSDN通过智能技术生成

在应用程序开发中,有时会碰到这样一个场景:设置一条记录的生效时间范围,比如某个产品信息,在某个时间段内是有效的,一般设计表时会在表中增加valid_start和valid_end这两个字段来限制,并通过设置这两个字段来实现具体产品的生效范围,如果查看当前生效的记录,则需要通过时间进行过滤。

Oracle 12.1.0.1引入了Temporal Validity(时间有效性),通过这一特性,在不增加列的情况下可以实现时间有效性的的判断,下面将对这一特性进行演示。

1 数据库版本

ALEN@PROD2> select * from v$version;



BANNER CON_ID

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

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 0

PL/SQL Release 12.1.0.2.0 - Production 0

CORE 12.1.0.2.0 Production 0

TNS for Linux: Version 12.1.0.2.0 - Production 0

NLSRTL Version 12.1.0.2.0 - Production 0

2 语法结构

要实现时间有效性,在创建表或修改表时指定如下语法即可:

 

说明:

  • valid_time_column:用于指定有效时间维度的名称,Oracle将会使用该名称创建数据类型为number的不可见虚拟列;
  • start_time_column:指定起始时间列的名称,数据类型为date或timestamp;
  • end_time_column:指定结束时间列的名称,数据类型为date或timestamp;
  • 如果不指定start_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值