如何将数据集从一个模式传输到另一个模式?

时间:2017-02-01 16:35:59

标签: sql oracle plsql

我最近通过使用错误数据更新生产数据库在工作中犯了一个大错误。我创建了一个针对生产数据库的模式,并创建了一个表。然后我得到了表的副本,只有我从测试服务器替换的数据。例如,我在生产服务器上的该列中的类型为45的列中替换了类型为6的所有用户。我现在拥有该特定列中唯一具有类型6的数据的副本,该列接近4000个用户。我在生产服务器中创建了一个模式,并创建了相同的名称表,并在我的新模式中复制了数据集。

我的问题是如何使用我的架构数据库表中的数据集替换生产数据库上我错误地从45替换6的数据集,该数据集仅包含该列中包含6的用户?

我知道我可以手动完成,但这需要永远,并希望有人可以帮助我快速,无痛地完成这项工作,例如存储程序。因为这几天我一直在肮脏?谢谢

2 个答案:

答案 0 :(得分:0)

如果您已安装toad并且您在dev db中拥有旧数据,或者您可以创建相同的旧数据,则toad可以选择比较2个不同模式或2个不同数据库中的2个表并作为比较结果它将为您提供插入或更新语句,您需要在任何一个模式或数据库上执行它以同步这两个表。

即使从表数据输出(toad中的网格选项卡),您也可以选择特定数据,并且可以从toad自动生成dml,您可以使用该脚本并在生产表中插入相同的文件

答案 1 :(得分:0)

您可以使用rman使用替代table_name恢复该特定表,并重新映射它的实际表名。

recover table scott.new_table 直到时间" to_date(' 08/17/2014 21:01:15',' mm / dd / yyyy hh24:mi:ss')" 辅助目的地' / stage / PSES /' remap table scott.new_table:actual_table; 要么 recover table new_table_name 直到SCN 1853267 辅助目的地' / stage / PSES /' remap table scott.new_table:actual_table;