1

我正在尝试在 oracle 11g 中导出数据

exp user/password file=dump.dmp tables = (table1)

通过 sqlplus。

我收到以下错误:

即将通过常规路径导出指定的表...
EXP-00011:USER.TABLE1 不存在
导出成功终止并出现警告。

但是当我检查谁是这张桌子的所有者时:

SELECT owner, table_name from dba_tables where table_name = 'TABLE1';

我知道的所有者TABLE1USER

我应该怎么做才能导出这个表?

更新

实际上,我找到了解决方案。我希望它会帮助别人。从版本 11g 开始,Oracle 引入了称为延迟段创建的新特性。因此,如果现在有行,oracle 不会创建表段。所以我用选项“立即创建段”重新创建了我的表

4

4 回答 4

2

实际上,我找到了解决方案。我希望它会帮助别人。从版本 11g 开始,Oracle 引入了称为延迟段创建的新特性。因此,如果其中没有行,oracle 不会创建表段。而且我的表不包含任何数据。所以我用选项“立即创建段”重新创建了我的表

在这里找到了解决方案。有更多选项如何解决这个问题,并解释为什么这个东西恰好出现在 oracle 11g 中。:)

于 2012-05-24T20:49:37.107 回答
1

除了 Olivia 发布的答案之外,我还想添加一些代码:

SELECT 'alter table ' ||  table_name || ' allocate extent;'
from dba_tables where SEGMENT_CREATED = 'NO';

再次执行输出和exp。您的架构将被导出,包括空表。

编辑:类似的问题在这里,也许你会在那里找到你的解决方案。

于 2014-08-13T14:04:34.373 回答
0

您可以使用以下查询从特定用户获取表级导出。

exp user/password file=dump.dmp tables = user.table1
于 2019-04-26T14:27:01.923 回答
0

改变这个:

exp user/password file=dump.dmp tables = (table1);

对此:

exp user/password tables = (table1) file=dump.dmp;
于 2017-06-05T18:40:17.697 回答