首  页 | 资讯中心 | 网络学院 | 天新汽车 | 天新手机 | 天新游戏 | 软件开发 | 考试认证
品 牌 机 | 笔 记 本 | 服 务 器 | 天新数码 - DC - DV - MP3 - MP4 - GPS - TV | 数字家庭
硬件 DIY - 主板 - CPU - 内 存 - 硬 盘 - 显示器 - 显卡 - 光驱 - 机箱 - 键鼠 - 网络设备
办公设备 | 打 印 机 | 扫 描 仪 | 投 影 仪 | 一 体 机 | 传 真 机 | 路 由 器 | 交 换 机
软件下载 | 驱动下载 | 游戏下载 | 源码下载 | 教程下载 | 站长在线 | 产品中心 | 报价中心
开发首页 | 开发语言 | .Net开发 | Java开发 | Web开发 | 数据库开发 | 移动开发 | 游戏开发 | 企业开发 | 操作系统 | 软件工程
VB VC Delphi PB BCB C++ - ASP.net C# VB.net - J2EE J2SE J2ME EJB - ASP PHP JSP CGI - MSSQL Oracle DB2 MySQL - CodingLife
  数据库开发首页 | 数据库基础 | SQL Server | Oracle | IBM DB2 | Sybase | MySQL/Postgrsql | Access | 数据库问题
  您现在的位置:天新网 > 软件开发 > 数据库开发 > 数据库基础
理解SCN与TimeStamp的相互转换
http://dev.21tx.com 2008年01月01日 网页教学网

每日文章精萃
.Net:.Net Framework 2.0范型的反射使用 Java:EJB 3.0 开发指南之定时服务
ASP:xmlhttp 抓取网页内容 PHP:php+fastcgi遭遇No input file speci
JSP:JSP文件操作写入和追加 CGI:Perl教学(14)Perl5的包和模块之二
VB:让 Visual Basic程序在新 User Login VC:自制王码五笔型输入法安装包

Oracle10g中,为了增强闪回操作(flashback),现已提供了函数对于SCN和时间戳来进行相互转换。

首先我们需要通过dbms_flashback.get_system_change_number,它可以获取系统当前的SCN值:

SQL> col scn for 9999999999999
SQL> select dbms_flashback.get_system_change_number scn from dual;
SCN
--------------
8908390522972

我们通过scn_to_timestamp函数可以将SCN转换为时间戳:

SQL> select scn_to_timestamp(8908390522972) scn from dual;
SCN
---------------------------------
05-JAN-07 10.56.30.000000000 AM

然后通过timestamp_to_scn则可以将时间戳转换为SCN:

SQL> select timestamp_to_scn
(scn_to_timestamp(8908390522972)) scn from dual;
SCN
--------------
8908390522972

请注意,通过这两个函数,最终Oracle将SCN和时间的关系建立起来,在Oracle10g之前,我们是没有办法通过函数转换得到SCN和时间的对应关系的,但一般可以通过logmnr分析日志来获得。

美中不足的是,这种转换需要依赖于数据库内部的数据记录,对于久远的SCN则不能转换,具体的示例如下:

SQL> select min(FIRST_CHANGE#) scn,
max(FIRST_CHANGE#) scn from v$archived_log;
SCN SCN
------------------ ------------------
8907349093953 8908393582271
SQL> select scn_to_timestamp(8907349093953) scn from dual;
select scn_to_timestamp(8907349093953) scn from dual
*
ERROR at line 1:
ORA-08181: specified number is not a valid system change number
ORA-06512: at "SYS.SCN_TO_TIMESTAMP", line 1
ORA-06512: at line 1
SQL> select scn_to_timestamp(8908393582271) scn from dual;

SCN
-------------------------------------------
05-JAN-07 11.45.50.000000000 AM

上一篇: SQL实现其他进制到十进制的转换
下一篇: Ora-00600 4194错误的解决方法

编辑推荐
相关内容
·恢复没有日志文件的数据库的方法两则
·如何使用SQL 事件探查器?
·教你快速掌握常见的9种数据库对象
·执行drop表操作后数据库无法起动
·用SQL建立索引
·SQL2008新应用之T-SQL Grouping sets
·编程入门:九大数据仓库特点比较
·SQL语言入门教程:第五课 删除数据库表格
·SQL语言入门教程:第四课 向表格中添加、更
·SQL语言入门教程:第二课 创建表格
·ORACLE DATE和TIMESTAMP数据类型的比较(一)
·ORACLE DATE和TIMESTAMP数据类型的比较(二)
·雇主:如何选择合适的DBA
·VFP编辑框中实现自动更正的方法
·数据库设计经验谈 (5 终章)
·数据库设计经验谈 (4)
·网络数据库设计入门(三)SQL语言的分类及语
·网络数据库设计入门(二)SQL语言及其优点
·网络数据库设计入门(一)SQL语言简介
·SQL语言入门教程:第一课 简介
最近更新
人气最热
·SQL实现其他进制到十进制的转换
·Ora-00600 4194错误的解决方法
·3个步骤结束网站恶梦-SQL注入隐患
·sqlldr加载数据到不同表的问题
·如何查出前台正在发出的SQL语句
·DB中如何查询Table占用空间的大小
·SQL实现最优坐地铁方案
·SQL语句中一条常见的行合并问题
·恢复没有日志文件的数据库的方法两则
·有一个表里面有某个字段出现重复记录,怎样
·汇总:常用 SQL 语句大全
·SQL语句判断已知表是否存在
·分析各种数据库优点 帮你做出准确选择
·查询同一表内多字段同时重复记录的SQL语句
·用SQL建立索引
·数据库设计中的14个常用技巧
·SQL语言入门教程:第一课 简介
·如何使用SQL 事件探查器?
·如何恢复/修复MS SQL数据库的MDF文件
·SQL的简单查询

 
·[硬件]精品8口交换机降价130元促销
·[数码]苹果也露脸!迈科GP多彩夹子P650美图赏
·[汽车]哪款新车领跑明年车市 十大新车精彩倒
·[开发]将字符串分段,取得每段内容
·[资讯]微软将推出伊斯坦布尔即时消息软件
·[游戏][ESWC2005] 广州赛区圆满结束
·[本本]本本每天推荐:13寸不足2KG!富士通S6311
·[办公]喷墨打印机品牌大全 - 联想(Lenovo)
·[手机]卖疯了摩记V3跌至2K5引发购买狂潮
·[考试]Cisco路由器——Console线的接法
·[学院]改系统注册表 实现Windows XP自动登录
·[娱乐]office美女换装
 

关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net