oracle准确记录数据提交时间

news2024/9/26 3:20:15

注意:mysql中的默认值同样记录的是dml操作发出时的时间,并且没有找到mysql中准确记录commit时间的方法。

oracle中数据发生变动时,如何准确记录发生变动时的时间。一般会使用ts字段,该字段使用默认值,default to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) 进行记录。但是这种记录方式一般是BI数仓使用,基本都是串行insert和delete操作。因为是串行,所以认为ts近似于提交(commit)时间,而实际ts记录的是该操作(insert)发出的时间。

对于并发频繁insert、update,或者事务时间较长,如何精确记录提交时间。

ora_rowscn是oracle10g版本中提出的概念,是一个伪列,用来记录数据提交时的scn,而scn是唯一的,且scn的先后就是commit的时间的先后。默认建表方式的ora_rowscn记录的是scn是精确到block的,而不是row,此时ora_rowscn取自data block header中的scn。要精确到row,需要使用以下方式建表:create table tab(c1 number) rowdependencies,此时每行数据需要增加6字节的开销。

ora_rowscn到timestamp转换,函数scn_to_timestamp()

普通建表

create table ctest (c1 varchar2(10),ts varchar2(19) default to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'))

-- 2022-11-14 10:58 insert

-- 2022-11-14 11:00 commit

insert into ctest(c1) values ('c');

insert into ctest(c1) values ('y');

select c1,ts,to_char(scn_to_timestamp(ora_rowscn),'yyyy-mm-dd hh24:mi:ss') ts2 from ctest

仔细比对下图中内容

精确到行

create table ctest (c1 varchar2(10),ts varchar2(19) default to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')) rowdependencies

-- 2022-11-14 10:58 insert

-- 2022-11-14 11:00 commit

insert into ctest(c1) values ('c');

insert into ctest(c1) values ('y');

select c1,ts,to_char(scn_to_timestamp(ora_rowscn),'yyyy-mm-dd hh24:mi:ss') ts2 from ctest

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1705754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JAVA WEB实用与优化技巧】如何自己封装一个自定义UI的Swagger组件,包含Swagger如何处理JWT无状态鉴权自动TOKEN获取

目录 一、Swagger 简介1. 什么是 Swagger?2. 如何使用 Swagger3. Springboot 中swagger的使用示例1. maven 引入安装2. java配置 二、Swagger UI存在的缺点1.不够方便直观2.请求的参数没有缓存3.不够美观4.如果是JWT 无状态登录,Swagger使用起来就没有那…

简化跨网文件传输摆渡过程,降低IT人员工作量

在当今数字化时代,IT企业面临着日益增长的数据交换需求。随着网络安全威胁的不断演变,网关隔离成为了保护企业内部网络不受外部威胁的重要手段。然而,隔离的同时,企业也需要在不同网络间安全、高效地传输文件,这就催生…

harmony开发遇到的问题

arkt-no-props-by-indexProperty ‘name’ has no initializer and is not definitely assigned in the constructor.arkts-no-any-unknown typescript 中的报错 Property ‘name’ has no initializer and is not definitely assigned in the construc… ArkTs编译常见错误汇…

全网爆火Remini 粘土滤镜风格,我用ComfyUI一键生成了(保姆级教程)!

一、火爆全网的Remini! Remini真的火爆了!最近大家的朋友应该都被粘土滤镜刷屏了。 小红书上粘土滤镜、粘土特效的帖子动不动就是几百万浏览量,几千赞。 在有些电商平台上还有人接单,帮忙定制remini粘土风格的照片! …

Shell编程之正则表达式与文本处理器

一、正则表达式 之前学习了 Shell 脚本的基础用法,已经可以利用条件判断、循环等语句编辑 Shell 脚本。接下来我们将开始介绍一个很重要的概念——正则表达式(RegularExpression,RE)。 1.1正则表达式概述 下面先来了解一下正则表…

软件产品测试报告模版分享,获取专业测试报告所需时间和费用

软件产品测试是一个系统性的、全面的质量保障过程,旨在发现和修复软件产品中的缺陷和错误,以确保软件的功能完善、性能卓越、安全可靠。 软件产品测试报告是软件测试过程中的重要文档之一,它主要记录了测试人员对软件产品进行测试的结果和结…

LLM 大模型学习必知必会系列(十三):基于SWIFT的VLLM推理加速与部署实战

LLM 大模型学习必知必会系列(十三):基于SWIFT的VLLM推理加速与部署实战 1.环境准备 GPU设备: A10, 3090, V100, A100均可. #设置pip全局镜像 (加速下载) pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ #安装ms-swift pip install ms-…

[链表]求中间节点、反转链表、回文链表

一、求链表的中间节点 876. 链表的中间结点 - 力扣(LeetCode) 快慢指针法: 分别定义两个节点的指针(pSlow和pFast)指向链表的第一个节点,然后两个指针一起往后遍历链表,pFast一次移动两个节点,pSlow一次移动一个节点&…

打工人好用的大模型问答,还需要一款可靠的文档解析工具

如果说三四年前,我们对AI的展望还停留在科幻片的话,现在,通向AI智能的路径已经初现端倪。各行各业的朋友们不约而同地嗅到了大模型带来的生产方式变革气息。 LLM宣布了AI时代的正式到来。 2022年11月30日,ChatGPT发布&#xff0…

牛客NC362 字典序排列【中等 DFS Java/Go/PHP】

题目 题目链接: https://www.nowcoder.com/practice/de49cf70277048518314fbdcaba9b42c 解题方法 DFS,剪枝Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回…

SaltStack

SaltStack 官方文档 1.简介 作用:批量处理状态管理(配置管理)事件驱动(通过事件触发操作)管理私有云/公有云 yum仓库:http://repo.saltstack.com 安装1.master和minionrpm --import https://repo.saltproj…

政府鼓励社会力量建设气膜体育场馆—轻空间

2023年12月1日,国家体育安全总局发布的《关于政协第十四届全国委员会第一次会议第00374号(文体宣传类020号)提案答复的函》中指出,2016年和2020年国务院发布的文件中均涉及推动气膜场馆建设及完善装配式建筑相关政策。下一步&…

Git学习篇

目录 使用命令导入项目 使用命令导入项目 1. 使用git init 命令初始化一个新的Git仓库。 git init 是 Git 命令,用于初始化一个新的 Git 仓库。当您想要开始跟踪一个新项目的版本控制时,可以运行 git init 命令来初始化一个空的 Git 仓库。 如果出现以下…

项目文件上传宝塔后只有一个文件内容不同且没有报错该如解决?

一、遇到此类问题不要慌先检查文件是否上传正确; 二、检查文件是否可以在浏览器中正常运行; 三、检查文件是否存在某些不明显的报错; 四、检查此页面的是否存在代码错误; 五、标签链接是否错误; 我所遇到的错误是…

白酒:不同产地白酒的风格特点与比较

云仓酒庄豪迈白酒,作为中国白酒的一部分,其风格特点深受产区的影响。不同产地的白酒,由于自然环境、酿造工艺等因素的差异,形成了各自与众不同的风味和特点。下面让云仓酒庄豪迈白酒来比较一下不同产地白酒的风格特点。 首先&…

使用Python操作Jenkins

大家好,Python作为一种简洁、灵活且功能丰富的编程语言,可以与各种API轻松集成,Jenkins的API也不例外。借助于Python中的python-jenkins模块,我们可以轻松地编写脚本来连接到Jenkins服务器,并执行各种操作,…

香橙派 AIpro开发板开箱测评(代码开源)

前言:有幸能够收到一块梦寐以求的 AI 边缘计算开发板 OrangePi AIpro,非常感谢官方大大给予的宝贵机会。OrangePi AIpro是香橙派官方跟华为昇腾合作的新一代边缘计算产品,其使用华为昇腾 AI 技术路线,搭配集成图像处理器&#xff…

odoo17 hooks使用

odoo17 hooks函数: 1、pre_init_hook 安装引擎开始前执行的函数 2、post_init_hook 安装引擎开始后执行的函数 3、uninstall_hook 卸载执行的函数 以pre_init_hook为例: 1)hooks.py 定义函数: 2)init.py引用定义的函数 3)manifest…

RabbitMQ不完整的笔记

同步的不足 1、拓展性差,当要添加功能时,需要在原来的功能代码上做修改,高耦合。 2、性能下降,调用者需要等待服务提供者执行完返回结果后,才能继续向下执行 3、级联失败,由于我们是基于OpenFeign调用交易…

江协科技STM32学习-0 购买套件

前言: 本文是根据哔哩哔哩网站上“江协科技STM32”视频的学习笔记,在这里会记录下江协科技STM32开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技STM32教学视频和链接中的内容。 引用: STM32入门教程-2023版 细致讲…