如何在oracle中导出空表

M.S*_*.SH 5 oracle oracle10g

我有一个大问题当我进行数据库转储时,空表被截断

我如何导出oracle 10g中的所有表

exp SYSTEM/password FILE=expdat.dmp
Run Code Online (Sandbox Code Playgroud)

Dba*_*Dba 24

这可能是因为这些表可能没有分配范围.在进行备份之前,您需要识别所有没有数据的表.然后更改这些表以分配范围.

ALTER TABLE <table_name> ALLOCATE EXTENT;
Run Code Online (Sandbox Code Playgroud)

使用以下脚本来更改它们没有分配范围的所有表.

SELECT 'ALTER TABLE '||table_name||' ALLOCATE EXTENT;' FROM user_tables WHERE segment_created = 'NO';
Run Code Online (Sandbox Code Playgroud)

复制输出并执行它.

  • 谢谢@Dba。这个解决方案对我来说非常有效。顺便说一句,为什么“exp”不提供任何允许我们导出空表的参数? (2认同)