PLSQL使用方法简单,平常使用较多,但在平常使用过程中,遇到一些问题,下面简单罗列并进行解决。这些解决方法大多通过网络查找获得,这里只是进行简单整理。

使用的数据库版本为:Oracle11g。

通用方法:表结构和数据分开导出导入,通用方法可以解决很多问题,对于下面的错误页可以通过这个方法进行解决。

方法说明:通过工具—>导出用户对象 导出用户表结构,可以通过编辑方式对表结构进行编辑后在导入的时候选择导入表—>SQL插入方式导入表结构。

               表结构导入后可以采用dmp导入导出的方式进行数据导入,对于部分表可以采用数据复制的方式进行数据导入。

1、在数据导出的时候,无法导出空表,提示错误“导出表报EXP-00011:table不存在”。

原因:11g默认创建一个表时不分配segment,只有在插入数据时才会产生(当然也可以强制分配),以节省磁盘空间。

解决方法:

            第一种:在空表中插入一条数据然后再对插入的数据进行删除,便可以进行数据导出(如果表少的话可以手动执行,对于多个表的情况可以采用语句进行批量操作的)。

            第二种:可以使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。

                        查找空表语句:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

                        注意:我在查询过程中可能查找的空表有遗漏,这个可以先进行一遍导出

                       

                        把查询结果导出,执行导出的语句即可。

                        导出结果可以通过语句导出,在PLSQL命令窗口执行下面语句:                       

                        set heading off;
                        set echo off;
                        set feedback off;
                        set termout on;
                        spool C:\allocate.sql;
                        Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
                        spool off;

                        导出后执行导出语句
                        @ C:\allocate.sql;

                       

            第三种:设置deferred_segment_creation 参数,该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。

                   需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。

                        在PLSQL中执行命令就下面第一句查看deferred_segment_creation属性是否为true,如果为true则继续执行后面一句进行更改即可。

                        show parameter deferred_segment_creation;

                        alter system set deferred_segment_creation = false;

                       

2、对于包含大字段的表当表空间名称改变时无法导出导入。

           查看所有包含大字段的表名称:select table_name from user_tab_columns where data_type='clob' or data_type='NCLOB'or data_type='BLOB'

           对于这些表可以采用先建立表结构在通过导入数据方式进行。

3、可能由于权限设置原因,导致导入表的表空间名称不正确。

           可以采用通用方法进行表结构导出,然后进行编辑后在进行导入,在编辑的时候修改表空间名称即可。

PLSQL数据导入导出问题解决(空表、大字段表、表空间错误等)的更多相关文章

  1. ORACLE数据导入导出后新数据库中某些表添加操作报错[ORA-12899]

    由于项目需要,我在搭建了新的开发环境后,需要将之前环境中的ORACLE数据库导出,再导入到新的开发环境下.当导出导入完成后,使用数据库进行添加操作时 发现针对很多表的添加操作报错,具体报错原因描述为: ...

  2. 关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法

    在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 ...

  3. SQL Server 之 在数据库之间进行数据导入导出

    1.同一服务器上数据库之间进行数据导入导出 (1).使用 SELECT INTO 导出数据 在SQL Server中使用最广泛的就是通过SELECT INTO语句导出数据,SELECT INTO语句同 ...

  4. SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

    * 说明:复制表(只复制结构,源表名:a 新表名:b)      select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) ...

  5. Java实现大批量数据导入导出(100W以上) -(一)导入

    最近业务方有一个需求,需要一次导入超过100万数据到系统数据库.可能大家首先会想,这么大的数据,干嘛通过程序去实现导入,为什么不直接通过SQL导入到数据库. 大数据量报表导出请参考:Java实现大批量 ...

  6. 通过 Sqoop1.4.7 将 Mysql5.7、Hive2.3.4、Hbase1.4.9 之间的数据导入导出

    目录 目录 1.什么是 Sqoop? 2.下载应用程序及配置环境变量 2.1.下载 Sqoop 1.4.7 2.2.设置环境变量 2.3.设置安装所需环境 3.安装 Sqoop 1.4.7 3.1.修 ...

  7. python 全栈开发,Day126(创业故事,软件部需求,内容采集,显示内容图文列表,MongoDB数据导入导出JSON)

    作业讲解 下载代码: HBuilder APP和flask后端登录 链接:https://pan.baidu.com/s/1eBwd1sVXTNLdHwKRM2-ytg 密码:4pcw 如何打开APP ...

  8. oracle数据库数据导入导出步骤(入门)

    oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...

  9. 软件部需求,内容采集,显示内容图文列表,MongoDB数据导入导出JSON

    全局变量 由于多个html页面,需要引用同一个变量.这个时候,需要定义一个全局变量!如何定义呢? 默认包含了mui的html文件都导入mui.js文件.那么将变量写在mui.js中,就可以实现所有页面 ...

随机推荐

  1. 【C】 01 - 再学C语言

    “C语言还用再学吗?嵌入式工程师可是每天都在用它,大家早就烂熟于心,脱离语言这个层面了”.这样说不无道理,这门古老的语言以其简单的语法.自由的形式的而著称.使用C完成工作并不会造成太大困扰,所以很少有 ...

  2. MySQL管理_数据库常用命令

    1.数据库赋权 进入mysql数据库: mysql> use mysql; 给root用户设置新密码: mysql> update user set password=password(& ...

  3. perl读取文件

    1)文件读取的3中方法   按行读,存入标量 while (<FILE>) { print; } 按行读,存入数组 @array = <FILE>; 读入整个文件 ,存入标量 ...

  4. java短信接口

    一.背景 从是Java一直想做一个跟生活联系特别紧密的东西,比如短信.邮箱.电话什么的一直是我感兴趣的,可是楞是当初没有头绪弄,恰巧今天公司在做一个 webrtc的视频会议的软件,刚好有短信这个需求, ...

  5. firefox与IE对js和CSS的区别(转http://log-cd.javaeye.com/blog/548665)

     ? "700px" : document.body.clientWidth>1000 ? "1000px" : "auto");// ...

  6. 扫地雷II

    感谢格致杭业晟同学改进完善 uses crt;var  i,j,k,ls,x,y:byte;  b:array[0..11,0..11] of shortint;  f:array[0..11,0.. ...

  7. BMP图片格式

    BMP图片 BMP采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大.BMP文件的图像深度可选lbit.4bit.8bit及24bit和32bit.BMP文 ...

  8. Android自动化学习笔记之MonkeyRunner:MonkeyRunner环境搭建

    ---------------------------------------------------------------------------------------------------- ...

  9. Home not found. Define system property "openfireHome" or create and add the openfire_init.xml file to the classpath

    启动openfire后出现这个错误,貌似什么配置没对吧.网上搜索了下,找到解决办法, $ vi /etc/profile在里面加入:export openfireHome=/opt/openfire ...

  10. myeclipse自动排版

    myeclipse代码排版方式有两种: 1. ctr+f 实现自动排版: 2. myeclipse->Preference->Java->Editor->Sava Action ...