zoukankan      html  css  js  c++  java
  • oracle 导出空表

    数据库备份 空表不能导出的问题处理;


    设置deferred_segment_creation 参数:
    设置deferred_segment_creation 参数为FALSE来禁用"段推迟创建"(也就是直接创建segment),无论是空表还是非空表,都分配segment。
    在sqlplus中,执行如下命令:

    SQL>alter system set deferred_segment_creation=false;

    查看:
    SQL>show parameter deferred_segment_creation;



    注意:该值设置后只对后面新增的表产生作用,对之前建立的空表(已经存在的)不起作用,仍不能导出。
    并且要重新启动数据库,让参数生效。


    1. 创建执行脚本文件:我创建一个E:sql_script.sql文件。内容如下:

    set heading off;

    set echo off;

    set feedback off;

    set termout on;

    spool C:sql_allocate.sql;

    Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;

    spool off;


    2. 执行E:sql_script.sql文件来生成“分配表空间的SQL代码”的脚本文件sql_allocate.sql。

    命令如下:

    SQL>@ E:sql_script.sql; (也可写一个批处理文件,命令如下:sqlplus 用户名/密码@数据库 @E:sql_script.sql)

    执行完毕后,得到E:sql_allocate.sql脚本文件(里面是给所有空表分配segment的SQL代码)。

    打开该文件会看到,已经得到对所有空表分配空间的SQL语句


    3. 执行E:sql_allocate.sql文件来对表分配空间。

    命令如下:SQL>@ E:sql_allocate.sql

    执行完毕,表已更改。之前存在的空表已分配segment空间!

  • 相关阅读:
    HDOJ 4259 Double Dealing
    第三课 MongoDB 数据更新
    百度语音识别API初探
    几种常见排序算法的java实现
    HDU 1051 Wooden Sticks 贪心题解
    离线安装Cloudera Manager5.3.4与CDH5.3.4
    Unix哲学
    如何在管理层变动中存活下来
    SWTError: No more handles [gtk_init_check() failed] running platform tests (on Linux)
    "xxadmin" user: No protocol specified 错误
  • 原文地址:https://www.cnblogs.com/rmhy/p/11819890.html
Copyright © 2011-2022 走看看