java中使用load语句_如何覆盖informix sql中“load from”语句中的匹配键

据我所知,LOAD语句仅限于使用INSERT语句 . 我很确定有很多方法可以做到这一点,我会建议两种方式:

在这两种情况下,仅支持数据库版本> = 11.50并且具有某些限制,例如:

仅当两个表具有1对1关系时,合并才有效

外部表仅限于数据库服务器文件系统,不会访问客户端计算机上的任何内容

建议1

加载到临时表中,然后使用MERGE语句 .

create temp table tp01 ( cols.... ) with no log ;

load from xyz.txt insert into tp01 ;

merge into destTable as A

using tp01 as B

ON A.empID = B.empID

WHEN MATCHED THEN UPDATE SET status = 'N'

WHEN NOT MATCHED THEN INSERT (empid, status) values ( b.empid, 'N');

drop table tp01;

建议2

创建external table到您的TXT文件,然后在需要时使用此表使用MERGE或UPDATE .

create external table ex01 .... using ( datafile('file:/tmp/your.txt'), delimited ...);

merge into destTable as A

using ex01 as B

ON A.empID = B.empID

WHEN MATCHED THEN UPDATE SET status = 'N'

WHEN NOT MATCHED THEN INSERT (empid, status) values ( b.empid, 'N');

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值