据我所知,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');