2016 - 2024

感恩一路有你

如何使用Oracle 11g中的exp命令导出包括空表的数据

浏览量:2314 时间:2024-06-13 10:48:48 作者:采采

随着技术的发展,Oracle 11g引入了新特性。 当表中没有数据时,默认情况下不分配段来节省空间。 然而,在使用exp命令导出表数据时,无法导出空表。 下面介绍如何使用exp命令导出包括空表的数据。

1.设置系统参数deferred_segment_creation

首先,在任务栏上搜索图标,输入cmd以打开命令提示符窗口。 接下来,设置系统参数deferred_segment_creation。

输入以下SQL语句查询参数值:

```sql

show parameter deferred_segment_creation;

```

输出的结果应为默认值TRUE。 修改该参数值,输入以下SQL语句:

```sql

alter system set deferred_segment_creationfalse;

```

执行结果如下图所示:

![image1]()

2.登录Oracle数据库

然后,打开PL/SQL Developer数据库连接工具,点击【Session】选项卡,然后点击“Log on”按钮并输入用户名和密码即可完成登录,如下图所示:

![image2]()

3.查询空表

接下来,我们需要查询空表。 点击【File】选项卡,然后点击“SQL Window”子菜单。 输入以下SQL查询语句:

```sql

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows0;

```

按F8键或点击工具栏上的“绿色三角按钮”执行查询。 执行结果显示APT_MAIN_FEES是空表,如下图所示:

![image3]()

4.编写Bat脚本并导出数据

最后,我们需要编写一个Bat脚本,将其与exp命令一起使用来导出数据。 双击Bat脚本以执行并导出表数据。 从命令提示符窗体中,可以看到即使空表APT_MAIN_FEES也在导出范围之内,如下图所示:

![image4]()

结论

通过以上步骤,我们可以成功地使用exp命令导出包括空表的数据。 首先,我们需要设置deferred_segment_creation参数。 其次,我们需要查询空表并编写一个Bat脚本来导出数据。这些步骤确保了所有数据都能够被正确导出。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。