如何使用toad将数据从一个数据库/表复制到oracle中的另一个数据库/表

时间:2013-09-13 20:27:20

标签: oracle toad

我正在尝试将表格数据从开发框db复制到uat db,它们是2个不同的数据库。我正在尝试toad.All连接细节是正确的,但它不工作,并抛出以下错误。

[错误]执行(12:1):ORA-00900:无效的SQL语句

这就是我正在尝试的

copy from abc/cde@//abc.abc.com:1521/devbox to abc/cde@//abc.abc.com/uatbox 
  INSERT TOOL_SERVICE_MAPPING (*) 
  USING (SELECT * FROM TOOL_SERVICE_MAPPING)

3 个答案:

答案 0 :(得分:6)

如果您的表没有大量行,您可以使用Toad的Export函数:它为每一行创建一个insert语句。然后,您可以在目标数据库中运行这些语句,以重新创建表的数据。

以下是步骤:

:一种。在目标数据库

中创建表的副本
  1. 在架构浏览器窗口的源数据库中单击要复制的表,在窗口右侧选择“脚本”选项卡:您将找到重新创建的脚本表;复制此脚本
  2. 将脚本粘贴到目标数据库的新SQL编辑器窗口中并运行它。这应该创建新表
  3. <强> B中。复制新表中的数据

    1. 在架构浏览器窗口中右键单击源DB中的表名
    2. 从上下文菜单中选择“导出数据
    3. 在导出查询中写上“ where ”语句(如果要复制整个表格,请将其留空)
    4. 选择目的地:剪贴板
    5. 点击“确定”(现在插入语句存储在剪贴板中)
    6. 在目标数据库的新SQL编辑器窗口中粘贴插入语句
    7. 将语句作为脚本运行(快捷键F5)

答案 1 :(得分:4)

copy是SQL * Plus命令,而不是SQL语句。如果Toad实现了特定的SQL * Plus命令(它确实实现了许多更简单的命令),我会感到惊讶。如果要使用copy命令,则需要使用SQL * Plus,而不是Toad。

如果要使用Toad,则需要使用SQL语句来复制数据。您可以在目标数据库中创建指向源数据库的数据库链接,然后

INSERT INTO tool_service_mapping
  SELECT *
    FROM tool_service_mapping@<<db link to source database>>

答案 2 :(得分:1)

到目前为止,我所经历过的最简单,最无错误的方法是:数据库 - &gt;比较 - &gt;模式

它看起来并不太复杂(很多复选框),但是您需要在空数据库中为需要创建的对象选中框,并且在比较结束时最终会得到包含所有对象的SQL脚本(触发器,您选择的视图,序列,包装(复选框)。

我清楚地看到生成的sql脚本中的所有表,触发器,数据等,甚至可以勾选这些我不想创建的(如果有的话)...在执行脚本之前,TOAD要求你确认你在哪个数据库中正在运行脚本 - 保存了几次......就像看起来一样笨拙,它完美无缺。

我有200个表,我不知道这是否适用于大型数据库。