【发布时间】: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 但没有任何区别