oracle中两张不同结构的表(部分字段相同)数据导入
使用存储过程实现,因为我要使用job来定时执行。
有两张表A(Aid,name,age,sex,address,class,tel)和B(Bid,name,age,sex,company,salary,class)
将A表中和B表中相同的字段(字段名相同)插入到B表中。
例如A表中的数据(1,‘张三’,23,‘男’,‘北京’,‘计算机’,‘123456’)插入到B表中(null,‘张三’,23,‘男’,null,null,‘计算机’)
请问各位大神,该如果使用存储过程去实现。事先,我知道A表和B表具有相同的字段,但是我并不知道哪些字段是相同的,也就是说,需要写代码去判断两张表的相同字段。
[解决办法]
--判断名字相同字段SQLselect column_name from user_tab_columns t where tale_name in('A','B')group by column_name having count(1) = 2;--按照这个sql进行for循环,把你的插入sql拼接起来就行了。--有个小窍门,把B表的每一个字段都设置上默认值,这样找到相同的字段之后只需要insert b(name,age....) select name,age... from a;--其余未指定字段,为默认值。
[解决办法]
游标循环
insert b(name,age....) select name,age... from a;
[解决办法]
merge into