【问题标题】:Impdp overwrite source dataimpdp 覆盖源数据
【发布时间】:2020-12-10 04:32:26
【问题描述】:

我是 Oracle 的新手,需要一些帮助。 我想将一些表从 STAT 用户转储到 ALLSTAT。

STAT 获得 imp_full_database 权限,ALLSTAT 获得 exp_full_database 1,没有 dba 权限。

我在我的本地主机上测试 impdp,所以 NETWORK LINK 是这样创建的:

CREATE DATABASE LINK transport CONNECT TO STAT IDENTIFIED BY STATPASS USING '127.0.0.1:1521/XE';

比我在 cmd 中尝试:

impdp ALLSTAT/ALLSTATPASS@XE NETWORK_LINK=transport TABLES=STAT.LOGS CONTENT=ALL TABLE_EXISTS_ACTION=REPLACE;

我没有收到错误消息,但在执行此脚本后,我在 STAT 用户上得到了空的 LOGS 表。

在我看来,在 impdp 期间,它尝试将数据导入到表中,而不是 ALLSTAT.LOGS 而是导出的 STAT.LOGS。

即使我以 ALLSTAT 用户身份登录,我也可以查看、编辑、删除 STAT.* 表。

您能告诉我,我应该通过哪种方式获取 ALLSTAT 自己的表 LOGS 以及来自 STAT.LOGS 的数据?

附:对不起我的英语:(

【问题讨论】:

  • 您似乎没有从 STAT 导出数据。您需要 expdp STAT 数据然后 impdp 并在 ALLSTAT 中执行 remap_schema 函数我假设您使用的是 Oracle 11g
  • @davegreen100 如果我没记错的话,使用 NETWORK_LINK 参数根本不需要 expdp。我尝试在 impdp 语句中使用 REMAP_SCHEMA=ALLSTAT:STAT 但没有任何区别

标签: oracle impdp


【解决方案1】:

找到了解决方案。

impdp ALLSTAT/ALLSTATPASS@XE NETWORK_LINK=transport TABLES=STAT.LOGS CONTENT=ALL TABLE_EXISTS_ACTION=REPLACE REMAP_SCHEMA=STAT:ALLSTAT;

REMAP_SCHEMA=STAT:ALLSTAT 是必需的,

感谢@davegreen100

【讨论】:

    【解决方案2】:

    impdp 命令和TABLE_EXISTS_ACTION=REPLACE 对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      相关资源
      最近更新 更多