Oracle批量更新语句

摘要:
1.问题描述:根据名称比较表a和更新表b。2.想法:创建一个临时表来存储交叉引用数据。例如,根据ID更新名称,然后这个临时表存储ID和名称;使用update语句更新限定数据3.MSSQL编写:--创建临时表SELECTA。fdepid,B.FNAMEINTO#TFROMT_BD_部门ainnerjoint_BD_DEPARTMENT_LBONA。fdepid=B.FDEP

1.问题描述:对照a表,根据id将name对照着更新b表

2.思路:创建临时表存对照的数据,比如根据id更新name,那么这个临时表存id和name;使用更新语句更新符合条件的数据

3.MSSQL写法:

--创建临时表
SELECT A.FDEPTID,B.FNAME INTO #T FROM T_BD_DEPARTMENT A INNER JOIN T_BD_DEPARTMENT_L B ON A.FDEPTID = B.FDEPTID

--只更新部门维度且设置了部门ID的数据
UPDATE KDY_FA_DEPRECIATION SET FDPPROJECTNAME = #T.FNAME FROM #T,KDY_FA_DEPRECIATION WHERE #T.FDEPTID = KDY_FA_DEPRECIATION.FDPPROJECT
	AND FDPDIMENSION = 'BD_Department' AND FDPPROJECT > 0 

4.ORACLE写法:

--创建会话级临时表存部门对照数据
CREATE GLOBAL Temporary TABLE DEMOTEST
ON COMMIT PRESERVE ROWS
AS
SELECT A.FDEPTID,B.FNAME FROM T_BD_DEPARTMENT A INNER JOIN T_BD_DEPARTMENT_L B ON A.FDEPTID = B.FDEPTID

--只更新部门维度且设置了部门ID的数据
--SELECT FDPPROJECTNAME,FDPPROJECT FROM KDY_FA_DEPRECIATION WHERE FDPDIMENSION = 'BD_Department' AND FDPPROJECT > 0 
UPDATE KDY_FA_DEPRECIATION S SET S.FDPPROJECTNAME = (SELECT B.FNAME FROM DEMOTEST B WHERE S.FDPPROJECT = B.FDEPTID)
WHERE S.FDPDIMENSION = 'BD_Department' AND S.FDPPROJECT > 0 

免责声明:文章转载自《Oracle批量更新语句》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇swap分区导航菜单交叉移动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

X oracle的内存参数 shmall shmmax shmmni sem

原文地址   :   https://blog.csdn.net/lihuarongaini/article/details/78540357第四章  Oracle内核参数 查看:more /proc/sys/kernel/shmmax 临时生效:echo 3145728 > /proc/sys/kernel/shmmax 永久生效,修改文件:/et...

搭建GoldenGate的单向复制环境

配置环境: 建议在相同版本OGG(即Oracle GoldenGate)之间进行复制,我在这里之所以选择不同版本的OGG,便于后续的比较学习。 一、准备OGG的运行用户 在这里,我直接使用oracle用户作为OGG的运行用户。 二、确认OGG的安装目录 在源端,即Linux环境下,我选择/u01/app/goldengate作为OGG的安装目录,注意:/...

oracle 10g/11g安装使用技巧(更新帖)

首先,得从Oracle的官网上下载适用于Vista/WIN7的10g或11g。 服务器:10203_vista_w2k8_x86_production_db.zip 客户端:10203_vista_w2k8_x86_production_client.zip Oracle官方网站上下载10203_vista_w2k8_x86_production_db....

MySQL-添加索引或字段时如何不锁表

索引的添加MySQL经历了一下几个历程: 一 .在MySQL 5.5版本之前,添加索引具体是这样的: 1.首先创建一张临时表和原表数据结构相同,将你要添加的索引加上。 2.把原表数据导入临时表。 3.删除原表。 4.将临时表重命名为原表。 这样做有很大问题: 首先对于大数据量的导入需要很长的时间,那么在这段时间里新增或修改的数据没办法处理。 其次如果碰上大...

FP 某段SQL语句执行时间超过1个小时,并报错:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展

一、出现如下两个错误:1.某一段SQL语句执行时间超过1个小时;2.一个小时后,提示如下错误:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展 temp 段ORA-06512: 在 "STG.FP_MO2SAP" 二、检查及处理过程提示temp表空间有问题,临时表空间主要是用于在排序操作或者大型查询、统计分析操作。1.先检查临...

Oracle 11g、12C数据泵导入导出

一、首先确定自己的数据库版本(数据库版本的不同,用的命令及参数形式上会有些许差异) 可以直接用客户端工具如plsql developer、nevicat等连上数据库,也可登上slqplus,输入以下语句查看,结果如下图所示 select * from V$version; --查看数据库版本 如果你是用exp导出,那就用imp导入,如果是expdp,那...