oracle procedure简单的将临时表的数据插入或更新到目标表
CREATE OR REPLACE PROCEDURE DEAL_SYNC_SCH_CUSTPHONE_NEW AS
CURSOR C_CURU IS
SELECT *
FROM CBS_COS.SCH_CUSTPHONE_TEMP S
WHERE S.ID IN (SELECT T.ID
FROM CBS_COS.SCH_CUSTPHONE_TEMP T
MINUS
SELECT C.ID FROM CBS_COS.SCH_CUSTPHONE C);
CURSOR C_CUR IS
SELECT T.*
FROM CBS_COS.SCH_CUSTPHONE_TEMP T, CBS_COS.SCH_CUSTPHONE C
WHERE T.ID = C.ID;
C_ROW C_CUR%ROWTYPE;
C_ROWU C_CURU%ROWTYPE;
C_NN NUMBER := 0;
BEGIN
FOR C_ROW IN C_CUR LOOP
UPDATE CBS_COS.SCH_CUSTPHONE C
SET C.ID = C_ROW.ID,
C.PHONENO = C_ROW.PHONENO,
C.TYPE = C_ROW.TYPE,
C.CUSTID = C_ROW.CUSTID,
C.OPID = C_ROW.OPID,
C.CREATE_TIME = C_ROW.CREATE_TIME,
C.UPDATE_TIME = C_ROW.UPDATE_TIME
WHERE C.ID = C_ROW.ID;
C_NN := C_NN + 1;
IF MOD(C_NN, 100000) > 0 THEN
COMMIT;
END IF;
COMMIT;
END LOOP; FOR C_ROWU IN C_CURU LOOP
INSERT INTO CBS_COS.SCH_CUSTPHONE
(ID, PHONENO, TYPE, CUSTID, OPID, CREATE_TIME, UPDATE_TIME)
VALUES
(C_ROWU.ID,
C_ROWU.PHONENO,
C_ROWU.TYPE,
C_ROWU.CUSTID,
C_ROWU.OPID,
C_ROWU.CREATE_TIME,
C_ROWU.UPDATE_TIME);
C_NN := C_NN + 1;
IF MOD(C_NN, 100000) > 0 THEN
COMMIT;
END IF;
END LOOP;
COMMIT;
END DEAL_SYNC_SCH_CUSTPHONE_NEW;
最简单实现,但是查询次数会更多的另一种方法
CREATE OR REPLACE PROCEDURE DEAL_SYNC_SCH_CUSTPHONE AS
CURSOR C_CUR IS SELECT * FROM CBS_COS.SCH_CUSTPHONE_TEMP;
C_ROW C_CUR%ROWTYPE;
C_NUM NUMBER :=0;
C_NN NUMBER :=0;
BEGIN
FOR C_ROW IN C_CUR LOOP
SELECT COUNT(1) INTO C_NUM FROM CBS_COS.SCH_CUSTPHONE C WHERE C.ID= C_ROW.ID;
IF C_NUM >0 THEN
UPDATE CBS_COS.SCH_CUSTPHONE C SET
C.ID=C_ROW.ID,
C.PHONENO=C_ROW.PHONENO,
C.TYPE =C_ROW.TYPE,
C.CUSTID =C_ROW.CUSTID,
C.OPID =C_ROW.OPID,
C.CREATE_TIME =C_ROW.CREATE_TIME,
C.UPDATE_TIME= C_ROW.UPDATE_TIME
WHERE C.ID= C_ROW.ID;
ELSE
INSERT INTO CBS_COS.SCH_CUSTPHONE (ID, PHONENO, TYPE, CUSTID, OPID, CREATE_TIME, UPDATE_TIME)
VALUES (C_ROW.ID, C_ROW.PHONENO, C_ROW.TYPE, C_ROW.CUSTID, C_ROW.OPID, C_ROW.CREATE_TIME, C_ROW.UPDATE_TIME);
END IF;
C_NN :=C_NN+1;
IF MOD(C_NN,10000)>0 THEN
COMMIT;
END IF;
END LOOP;
COMMIT;
END DEAL_SYNC_SCH_CUSTPHONE;
oracle procedure简单的将临时表的数据插入或更新到目标表的更多相关文章
- 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表
最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...
- 09Oracle Database 数据表数据插入,更新,删除
Oracle Database 数据表数据插入,更新,删除 插入数据 Insert into table_name(column) values(values); insert into studen ...
- .NET 百万级 大数据插入、更新 ,支持多种数据库
功能介绍 (需要版本5.0.44) 大数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现 当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API 操作数据库 ...
- sql把一个表数据插入到另一张表
把一个表数据插入到另一张表 insert into tableB (field1,field2,field3,field4) select field1,field2,field3,'val4' fr ...
- ALV编辑数据后未更新到内表
在调用 ‘I_CALLBACK_USER_COMMAND’的时候定义 DATA: GR_ALV TYPE REF TO CL_GUI_ALV_GRID. "alv数据更改后更新到内表 CAL ...
- 09Microsoft SQL Server 表数据插入,更新,删除
Microsoft SQL Server 表数据插入,更新,删除 向表中插入数据 INSERT INTO insert into tb1 values(0004,'张凤凤') insert into ...
- sql语句 怎么从一张表中查询数据插入到另一张表中?
sql语句 怎么从一张表中查询数据插入到另一张表中? ----原文地址:http://www.phpfans.net/ask/MTc0MTQ4Mw.html 比如我有两张表 table1 字段 un ...
- 在oracle中怎么把一张表的数据插入到另一张表中
把table2表的数据插入到table1中 insert into table1 select * from table2
- 微软BI 之SSIS 系列 - 使用 Multicast Task 将数据同时写入多个目标表,以及写入Audit 与增量处理信息
开篇介绍 在 SSIS Data Flow 中有一个 Multicast 组件,它的作用和 Merge, Merge Join 或者 Union All 等合并数据流组件对比起来作用正好相反.非常直观 ...
随机推荐
- JXTA 2: 具有高性能、海量伸缩性的 P2P 网络
这是来自developerWorks的一篇文章,地址是 https://www.ibm.com/developerworks/cn/java/j-jxta2/ ———————————————————— ...
- EasyUI combobox 加载JSON数据《一》
Action返回 JSON 格式如下: jsonResult = { total=7,rows=[ {TEXT=技术支持, ID=402894ca4419acf1014419b148a10000}, ...
- 数码相机常用CCD/CMOS尺寸对比
数码相机的关键元件CCD或CMOS又称为“影像传感器”,其作用相当于感光胶片.CCD尺寸越大,采集光线的效果越好,画面记录的信息就越多,保留的细节也就越丰富,所以图像更完美漂亮. CCD尺寸的大小与像 ...
- php数据库操作命令精华大全
1.表结构//列信息2.表数据//行信息3.表索引//把列中的行加到索引中(一般情况下一个表一定要把id这一列的所有数据都加到主键索引中) 2.[dos下]关闭mysql:net stop mysql ...
- 【C语言天天练(二)】预处理
引言: 学C语言之初.一提到预处理,脑子里想到的就是#define的宏定义以及#include包括的头文件.后来随着对C的深入学习发现.预处理不止这些.比方条件编译.提前定义的宏等等.以下对此进行总结 ...
- Centos 虚拟机网络问题,网卡起不来,重启network服务失败
拷贝了个虚拟机,有两个网卡,1个可以起来,另一个起不来.运行命令:$>systemctl restart network 输出如下:Job for network.service failed ...
- CocoaPods安装和使用教程Code4App LOGO
本文转载至 http://code4app.com/article/cocoapods-install-usage Code4App 原创文章.转载请注明出处:http://code4app.com/ ...
- iOS设置导航栏透明度
As I support Colin's answer, I want to give you an additional hint to customize the appearance of an ...
- mongoDB-----针对某个或多个文档只需要部分更新可使用原子的更新修改器
update() db.collection.update( <query>, <update>, { upsert: <boolean>, multi: < ...
- 巨蟒python全栈开发-第6天 is&==
1.小数据池 2.id 3.decode和encode 小数据池 #小数据池:不要死磕就行#python为了简化,搞出来的一个东西 ID (1)# id()函数可以帮我们查看一个变量的内存地址# a= ...