Oracle拉链表
目录
-- 准备一个拉链表
-- 2.将所有的数据 同步到拉链表中 TEST_TARGET中
--3. 源表的数据发生了变化
--4. 将新增和修改的数据同步到拉链表 -- 开链的过程 -- 判断源表和目标表的数据,不同数据插入
--5. 修改拉链表中失效的时间和状态(将原本的开链时间,改为当前时间)-- 闭链
-- 拉链表
-- 一张反应历史变化的表,维护数据历史状态,和数据最新的状态
-- 拉链表涉及的表
1. 源表(业务数据库里的表)
2. 拉链表
-- 它通常用于数据仓库中维护事实表和维度表之间的关系
-- 拉链表的实现过程.
1. 准备一个源表和一个拉链表
2. 将所有的数据同步到拉链表
3. 源表的数据发生变化
4. 将新增和修改的数据同步到拉链表
5. 修改拉链表的失效时间和状态.
-- 准备一个拉链表
CREATE TABLE TEST_SOURCE -- 源表
(
S_ID NUMBER,
S_NAME VARCHAR2(10),
S_SAL NUMBER,
CREATE_AT DATE,
UPDATE_AT DATE
);
CREATE TABLE TEST_TARGET --目标表
(
S_ID NUMBER,
S_NAME VARCHAR2(10),
S_SAL NUMBER,
CREATE_AT DATE,
UPDATE_AT DATE,
START_AT DATE, -- to_date(to_char(sysdate-1,'yyyymmdd'),'yyyymmdd')
END_AT DATE, -- to_date('9999-12-31','yyyy-mm-dd')
T_ACTIVE VARCHAR2(10) -- '有效'
);
INSERT INTO TEST_SOURCE VALUES(1,'黄征',6000,to_date(to_char(sysdate-1,'yyyymmdd'),'yyyymmdd'),to_date(to_char(sysdate-1,'yyyymmdd'),'yyyymmdd'));
INSERT INTO TEST_SOURCE VALUES(2,'徐峥',7000,to_date(to_char(sysdate-1,'yyyymmdd'),'yyyymmdd'),to_date(to_char(sysdate-1,'yyyymmdd'),'yyyymmdd'));
select * from test_source;
-- 2.将所有的数据 同步到拉链表中 TEST_TARGET中
INSERT INTO TEST_TARGETSELECT S.S_ID,S.S_NAME,S.S_SAL,S.CREATE_AT,S.UPDATE_AT,TO_DATE(TO_CHAR(SYSDATE-1,'yyyymmdd'),'yyyymmdd'),TO_DATE('9999-12-31','yyyy-mm-dd'),'有效'FROM TEST_SOURCE S
SELECT * FROM TEST_TARGET;
--3. 源表的数据发生了变化
INSERT INTO TEST_SOURCE VALUES (3,'黄海波',8000,to_date(to_char(sysdate,'yyyymmdd'),'yyyymmdd'),to_date(to_char(sysdate,'yyyymmdd'),'yyyymmdd'));UPDATE TEST_SOURCE S SET S.S_SAL=S.S_SAL+900, S.UPDATE_AT=TO_DATE(TO_CHAR(SYSDATE,'YYYYMMDD'),'YYYYMMDD') WHERE S.S_ID=1;
--4. 将新增和修改的数据同步到拉链表 -- 开链的过程
-- 判断源表和目标表的数据,不同数据插入
INSERT INTO TEST_TARGET SELECT S.S_ID,S.S_NAME,S.S_SAL,S.CREATE_AT,S.UPDATE_AT,TO_DATE(TO_CHAR(SYSDATE-1,'yyyymmdd'),'yyyymmdd'),TO_DATE('9999-12-31','yyyy-mm-dd'),'有效'FROM TEST_SOURCE SWHERE NOT EXISTS(SELECT 1 FROM TEST_TARGET G
WHERE S.S_ID=G.S_IDAND G.S_NAME=S.S_NAME AND G.S_SAL=S.S_SALAND G.CREATE_AT =S.CREATE_ATAND G.UPDATE_AT=S.UPDATE_ATAND G.END_AT=TO_DATE('9999-12-31','yyyy-mm-dd'));
SELECT * FROM TEST_TARGET;
--5. 修改拉链表中失效的时间和状态(将原本的开链时间,改为当前时间)-- 闭链
UPDATE TEST_TARGET T SET T.END_AT=TO_DATE(TO_CHAR (SYSDATE,'YYYYMMDD'),'YYYYMMDD'),T.T_ACTIVE='失效'WHERE EXISTS(select 1from TEST_SOURCE sWHERE t.s_id=s.s_idAND (T.S_NAME <> S.S_NAME OR T.S_SAL<> S.S_SAL OR T.UPDATE_AT <> S.UPDATE_AT));
SELECT * FROM TEST_TARGET;
相关文章:
Oracle拉链表
目录 -- 准备一个拉链表 -- 2.将所有的数据 同步到拉链表中 TEST_TARGET中 --3. 源表的数据发生了变化 --4. 将新增和修改的数据同步到拉链表 -- 开链的过程 -- 判断源表和目标表的数据,不同数据插入 --5. 修改拉链表中失效的时间和状态(将原本的开链时间,改为当前时间)-- …...
Git 代理(Proxy) 配置
某些情况下,我们需要通过代理才能访问特定网络环境下的git资源,git支持代理配置, 支持 http(s), SOCKS4/SOCKS5. HTTP(S) HTTP 代理配置格式如下: git config --global http.proxy http://[proxy]:[port]实际环境下, 其实我们大多数情况下,并不需要全部git资源都需要通过代理…...
C++,对象赋值与对象拷贝的区别、深浅拷贝
在C中,对象赋值和对象拷贝是两个不同的操作,它们有明显的区别: 1. 对象赋值(Object Assignment): - 对象赋值是指将一个已经存在的对象的值复制给另一个已经存在的对象。这通常通过赋值操作符(…...
MATLAB实现相关性分析
目录 一.基本理论 二.两类相关系数的对比 三.相关系数的假设检验 四.MATLAB的相关操作 五.其他有关的一些列技巧 六.案例展示 七.实战操作 一.基本理论 所谓相关系数,本质上是来衡量两组数据的关系大小——对应呈现函数关心的两种变量,那么我们可以…...
MySQL索引看这篇就够了
能简单说一下索引的分类吗? 例如从基本使用使用的角度来讲: 主键索引: InnoDB 主键是默认的索引,数据列不允许重复,不允许为 NULL,一个表只能有一个主键。唯一索引: 数据列不允许重复,允许为 NULL 值&…...
无法从 /var/lib/rpm 打开软件包数据库
使用yum命令安装软件包时,报错“无法从 /var/lib/rpm 打开软件包数据库” 小白教程,一看就会,一做就成。 1.原因 是误操作导致 rpm 数据库损坏。(/var/lib/rpm 目录下的文件被损坏) 2.解决 当RPM 数据库发生损坏&a…...
路由器实现 IP 子网之间的通信
目录 路由器配置静态或默认路由实现 IP 子网之间的通信 地址聚合与最长前缀匹配路由配置 路由器配置静态或默认路由实现 IP 子网之间的通信 按如下拓扑图配置 其中,路由器加入4GEW-T PC配置如下 LSW1的配置 <Huawei>sys Enter system view, return user…...
解决kali beef启动失败问题及实战
文章目录 一、解决方法二、靶场实战应用1.首先打开dvwa这个靶场,设置难度为low2.打开xss-stored3.准备payload4.提交payload5.利用 一、解决方法 首先需卸载 ruby apt remove ruby 卸载 beef apt remove beef-xss 重新安装ruby apt-get install ruby apt-get insta…...
【NetEq】NackTracker 走读
重传列表的最大限制是500个包,大约10秒钟 // A limit for the size of the NACK list.static const size_t kNackListSizeLimit = 500; // 10 seconds for 20 ms frame// packets.允许设置一个小于max_nack_list_size的值 // Set a maximum for the size of the NACK list. I…...
条例18~23(设计与声明)
目录 条例18 让接口被正确使用,不易被误用 总结 条例19 设计class犹如设计type 条例20 宁以const的引用传参替代传值传参 总结 条例21 必须返回对象时,别妄想返回他的引用 总结 条例22 将成员变量声明为private 总结 条例23 宁以非友元非…...
STM32 UART通信协议 基础知识
通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行、异步、全双工的通信协议。 在通信领域中,有两种数据通信方式:并行通信和串行通信。串口的数据传输是以串行方式进行的。串口在…...
nginx部署vue前端项目,访问报错500 Internal Server Error
前言 描述:当我配置好全部之后,通过 服务器 ip 地址访问,遇到报错信息:500 Internal Server Error。 情况说明 前提:我是通过Docker启动nginx容器,通过-v 绑定数据卷,将html文件和nginx.conf…...
@Excel注解
在 Java 开发中,Excel 注解通常用于标记实体类的字段,以指示与 Excel 文件的导入和导出相关的配置信息。 Excel 注解通常是自定义的注解,它可以包含多个属性,用于定义与 Excel 相关的配置,如字段的标题、顺序、数据格…...
解释器模式简介
概念: 解释器模式(Interpreter Pattern)是一种行为型设计模式,它用于定义语言的文法,并解析和执行给定语言中的表达式。该模式将每个表达式表示为一个类,并提供了一种方式来组合这些表达式以实现复杂的语句…...
图像识别技术在不同场景下有哪些应用?
图像识别技术在不同场景下的应用包括: 遥感图像识别:航空遥感和卫星遥感图像通常用图像识别技术进行加工以便提取有用的信息。该技术目前主要用于地形地质探查,森林、水利、海洋、农业等资源调查,灾害预测,环境污染监…...
阿里巴巴OceanBase介绍
前言 官网地址:https://www.oceanbase.com/ OceanBase是由蚂蚁集团完全自主研发的国产原生分布式数据库,始创于2010年。是全球唯一在 TPC-C 和 TPC-H 测试上都刷新了世界纪录的国产原生分布式数据库。 2010年,创始人阳振坤加入阿里巴巴&…...
leetcode 2560. 打家劫舍 IV
2560. 打家劫舍 IV 沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额 。…...
正点原子lwIP学习笔记——Socket接口TCP实验
1. Socket接口TCP Client配置连接 配置步骤如下所示: sin_family设置为AF_INET表示IPv4网络协议;sin_port为设置端口号;sin_addr. s_addr设置远程IP地址;调用函数Socket创建Socket连接, 注意该函数的第二个参数SOCK_…...
【Flink】
事件驱动型应用 核心目标:数据流上的有状态计算 Apache Flink是一个框架和分布式处理引擎,用于对无界或有界数据流进行有状态计算。 运行逻辑 状态 把流处理需要的额外数据保存成一个“状态”,然后针对这条数据进行处理,并且更新状态。这就是所谓的“…...
大数据Flink(九十一):Array Expansion(数组列转行)和Table Function(自定义列转行)
文章目录 Array Expansion(数组列转行)和Table Function(自定义列转行)...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
