如何将数据导入oracle,当主键冲突时,用新数据覆盖旧数据,只使用cmd行,使用imp或impdp,为什么oracle不提供覆盖选项在命令行中尝试
k5hmc34c1#
如果你并不真正关心现有的数据(因为新插入的值应该替换现有的值),那么看看IMPDP的TABLE_EXISTS_ACTION是否有帮助,它可以被设置为SKIP | APPEND | TRUNCATE | REPLACE之一。我想你可能对truncate或replace选项感兴趣。另一方面,如果目标表包含.dmp文件中不存在的数据,而您希望保留它,那么您肯定不想使用我前面建议的方法,因为您会丢失所有内容。在这种情况下,impdp无法完成您想要的操作。您必须将数据导入临时表,然后编写SQL语句来完成您想要的操作-插入新行,更新现有行。或者,将现有数据保存到临时表中,使用truncate或replace impdp选项,然后修复错误。
TABLE_EXISTS_ACTION
SKIP | APPEND | TRUNCATE | REPLACE
truncate
replace
impdp
1条答案
按热度按时间k5hmc34c1#
如果你并不真正关心现有的数据(因为新插入的值应该替换现有的值),那么看看IMPDP的
TABLE_EXISTS_ACTION
是否有帮助,它可以被设置为SKIP | APPEND | TRUNCATE | REPLACE
之一。我想你可能对truncate
或replace
选项感兴趣。另一方面,如果目标表包含.dmp文件中不存在的数据,而您希望保留它,那么您肯定不想使用我前面建议的方法,因为您会丢失所有内容。
在这种情况下,
impdp
无法完成您想要的操作。您必须将数据导入临时表,然后编写SQL语句来完成您想要的操作-插入新行,更新现有行。或者,将现有数据保存到临时表中,使用
truncate
或replace
impdp选项,然后修复错误。