社区
C#
帖子详情
Oracle中同一个表内,怎么用一条数据,更新另一条数据
XiaoYi96
2020-12-10 04:54:37
人员表查询显示如下
ID name age
001 张三 18
002 李四 19
怎么将id为002的人员信息name和age,更新到001上?Oracle数据库
...全文
11007
5
打赏
收藏
Oracle中同一个表内,怎么用一条数据,更新另一条数据
人员表查询显示如下 ID name age 001 张三 18 002 李四 19 怎么将id为002的人员信息name和age,更新到001上?Oracle数据库
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gs0038
2020-12-14
打赏
举报
回复
好像没有,只能用你的笨方法了
Denuin多啦咧梦
2020-12-14
打赏
举报
回复
送分给我吗?
XiaoYi96
2020-12-14
打赏
举报
回复
来人接分,我结个贴
XiaoYi96
2020-12-11
打赏
举报
回复
目前用了嵌套的笨办法,效率有点低但是能解决 update 人员表 A set (A.name, A.age) = (select B.name, B.age from 人员表 B where B.id='002') where A.id='001'
XiaoYi96
2020-12-11
打赏
举报
回复
有没有会的呢?类似于sqlserver这种写法 update A set A.name=B.name, A.age=B.age from 人员表 A ,人员表 B where A.id='001' and B.id='002'
oracle
truncate恢复工具
PRM DUL for
oracle
恢复被truncate截断掉的表
Oracle
DBA神器:PRM灾难恢复工具,Schema级别
数据
恢复。PRM For
Oracle
Database – schema级别
oracle
数据
库
数据
恢复特性 ,PRM即ParnassusData Recovery Manager是企业级别
Oracle
数据
库灾难恢复工具。PRM可以在无备份的情况下恢复被truncated/drop掉的表,也可以恢复无法打开的
Oracle
数据
库(Alter Database Open失败)
中
的
数据
。 PRM是图形化增强版的
Oracle
DUL工具,同时具备很多
Oracle
DUL不具备的特性 情况 当某张表被意外truncated掉了,需要恢复其上的所有
数据
时。表空间的多个
数据
文件均存放在ASM上,且没有任何形式的备份。 注意这边文章针对的是PRM在
数据
字典模式下的Truncate恢复选项不可用时使用,
数据
字典模式下的Truncate恢复选项是最简单、易用的一种模式,具体使用见《使用PRM恢复
Oracle
数据
库
中
误truncate截断的表
数据
》http://www.parnassusdata.com/zh-hans/node/52 PRM 3.0的下载地址: http://parnassusdata.com/sites/default/files/ParnassusData_PRMFor
Oracle
_3002.zip PRM 的官方网站: http://www.parnassusdata.com/ PRM背景 PRM恢复表
数据
时存在多种模式, PRM需要知道哪些表上的
数据
块是需要被读取并取出
数据
的。默认的表现形式是直接从segment header
数据
段头里获取EXTENT MAP即盘区图,另一种方案就是由PRM自己去构建一个盘区图。 这些盘区图可以通过,PRM的SCAN DATABASE选项来获得: Recovery Wizard => Non-Dictionary Mode,如果是ASM则选择Non-Dictionary Mode(ASM) 执行SCAN Database后会生成SEG$和EXT$的
数据
到PRM内嵌的
数据
库
中
,之后可以选择SCAN TABLES FROM SEGMENTS 或者 SCAN TABLES FROM EXTENTS。 FROM Segments 意味着使用Segment Header
中
获得的Extent MAP信息,而FROM Extents意味着使用PRM自己扫描获得的EXTENT信息。 请注意当TRUNCATE发生后,
数据
表Table的Segment Header
中
的Extent MAP信息就会被清空了, 但实际存放
数据
的
数据
块
中
的行
数据
还是在哪里的,除非被其他
数据
表/索引的增长而覆盖了。 所以当Truncate发生后选择SCAN TABLES FROM SEGMENT 是找不回
数据
的,必须使用SCAN TABLES FROM EXTENTS, EXTENT的信息是PRM自己去
数据
文件
中
扫描获得的,所以只要有
数据
的地方PRM就会自己去找到。 除了Truncate需要使用到 SCAN TABLES FROM EXTENTS之外对于DROP TABLE的恢复也可以用到SCAN TABLES FROM EXTENTS , 总之当Segment Header找不到(可能存放Segment Header的
数据
文件丢失了)、或者已损坏(可能Segment Header的
数据
块被损坏了)、或者其
中
的Extent Map
数据
无效(Truncate、DROP或逻辑损坏)时都可以使用SCAN TABLES FROM EXTENTS 。 但是如果不存在上述的问题时,建议用SCAN TABLES FROM SEGMENTS ,因为从Segment Header获取信息更方便也更高效一些。 在PRM
中
同一个
程序实例 同时只能使用SCAN TABLES FROM SEGMENTS 或者 SCAN TABLES FROM EXTENTS
中
的一个。 使用SCAN TABLES FROM EXTENTS 后需要找到对应被TRUNCATE掉的表的原始DATA_OBJECT_ID,即左侧属性图
中
的一个对象,并将其DataBridge
数据
搭桥传输到目标
数据
库
中
即可。 用户truncate误删 schema下的若干
数据
表,无法使用flashback query等技术恢复
数据
,尝试从之前的全备份
中
恢复,
数据
库restore速度较快,但是archivelog恢复时由于HP data Protecter的不明原因导致归档恢复十分缓慢,缓慢一个归档往往要几分钟,而需要restore数百个归档,时间上无法接受。 该案例通过PRM-DUL直接在字典模式下恢复truncate
数据
的功能,在不到一个小时内就恢复了数十万条
数据
,虽然我们无法保证不丢失
一条
数据
,但至少帮助用户在最短时间内恢复了主要业务。
如何从Excel表格
中
导入
数据
批量生成二维码.pdf
如何从Excel表格
中
导入
数据
批量生成二维码.pdf
Oracle
数据
库学习日记-实用性最强的
Oracle
学习总结.docx
Oracle
数据
库学习日记-实用性最强的
Oracle
学习总结.docx
Oracle
:一个表
中
字段合并怎么做?根据一个字段标识来合并多条
数据
Oracle
:一个表
中
字段合并怎么做?根据一个字段标识来合并 如这样的cust表,同一cust_id,不同的字段
数据
穿插,导致出现了两条,其
中
num为区分字段,那么我们想将两条
数据
合并成一个cust_id 的
数据
。 也就是想要做成这样的结过结果表 其实可以通过left join关联,通过num区分 首先我们可以写一下sql语句,来查一下关联的结果: select * from cust a left join cust b on a,cust_id= b.cust_id where a.num =‘1’
oracle
去除重复, 获取取最新的第
一条
数据
最近项目
中
的
一条
sql语句涉及到取一个表
中
相同工单编码
中
最新的
一条
数据
,在网上看到一函数完美解决此问题,如下是内容要点: 问题:在项目
中
有一张设备检测信息表DEVICE_INFO_TBL, 每个设备每天都会产生
一条
检测信息,现在需要从该表
中
检索出每个设备的最新检测信息。也就是device_id字段不能重复,消除device_id字段重复的记录,而且device_id对应的检测信息test_res...
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章