ORACKLE中的两个表的数据导入和导出解决方案
ORACKLE中的两个表的数据导入和导出
表A和表B结构完全一样。A表数据要更新到B表去。两表通过字段ID来关联。
如果字段IMPORTDIRECTION=1,A.ID等于B.ID,则把A表中对应ID的那条数据update到B表去,然后把A表中的字段IMPORTDIRECTION修改成4.
如果字段IMPORTDIRECTION=1,A.ID不等于B.ID,说明是新数据。则把A表中对应ID的那条数据insert into到B表去,然后把A表中的字段IMPORTDIRECTION修改成4.请问下语句该如何写
------解决方案--------------------
一条语句恐怕不行
表A和表B结构完全一样。A表数据要更新到B表去。两表通过字段ID来关联。
如果字段IMPORTDIRECTION=1,A.ID等于B.ID,则把A表中对应ID的那条数据update到B表去,然后把A表中的字段IMPORTDIRECTION修改成4.
如果字段IMPORTDIRECTION=1,A.ID不等于B.ID,说明是新数据。则把A表中对应ID的那条数据insert into到B表去,然后把A表中的字段IMPORTDIRECTION修改成4.请问下语句该如何写
------解决方案--------------------
一条语句恐怕不行
- SQL code
MERGE INTO B USING ( SELECT ID,COL_1,COL_2... FROM A WHERE A.IMPORTDIRECTION=1 )A ON (B.ID=A.ID) WHEN MATCHED THEN UPDATE SET B.COL_1=A.COL_1, B.COL_2=A.COL_2, ... WHEN NOT MATCHED THEN INSERT (ID,COL_1,COL_2...) VALUE(A.ID,A.COL_2,...); UPDATE A SET IMPORTDIRECTION=4;