今儿在自己电脑上搭建开发环境,在给数据库导入表结构以及数据时报1659错误,错误内容如下:
IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
"CREATE TABLE "T_DATA_KKCL"
…………
IMP-00003: 遇到 ORACLE 错误 1659ORA-01659: 无法分配超出 6 的 MINEXTENTS (在表空间 HWITS_1中)
第一反应——空间不足?查看发现C盘只有614KB,尼玛!PS:Oracle安装在虚拟机中
百度……Google……
发现是因为从公司导出的dmp文件中初始化分配表空间的值过大造成
解决方法:
1、在导出表结构的时候exp命令加上compress=n,在exp时有个参数COMPRESS主要用于是否将segment的extent在导出时是否合并,在公司导出时没有加这个参数,导致默认合并,也就是说导出时Oracle将表结构的extent合并到一个extent中。
可惜现在不在公司,没法重新导出,只能使用第二种办法。
2、使用imp中的indexfile=xxx.sql参数,将导入语句生成sql,打开后豁然开朗
REM CREATE TABLE "HWITS"."T_DATA_KKCL" ("CLXXBH" VARCHAR2(18) NOT NULL
REM ENABLE, "SJLY" VARCHAR2(2), "SJLX" VARCHAR2(1) NOT NULL ENABLE,
REM "KKBH" VARCHAR2(12) NOT NULL ENABLE, "KKMC" VARCHAR2(50), "CJJG"
REM VARCHAR2(10) NOT NULL ENABLE, "SBBH" VARCHAR2(16) NOT NULL ENABLE,
REM "FXBH" VARCHAR2(2) NOT NULL ENABLE, "CDBH" VARCHAR2(2) NOT NULL
REM ENABLE, "HPHM" VARCHAR2(15) NOT NULL ENABLE, "HPZL" VARCHAR2(2),
REM "CSYS" VARCHAR2(2), "JGSK" DATE NOT NULL ENABLE, "CLSD" NUMBER(3, 0),
REM "SJCJ" VARCHAR2(1) NOT NULL ENABLE, "CLZT" VARCHAR2(1), "ZJLX"
REM VARCHAR2(1), "TXSL" NUMBER(1, 0) NOT NULL ENABLE, "TXLJ1"
REM VARCHAR2(255) NOT NULL ENABLE, "TXLJ2" VARCHAR2(255), "TXLJ3"
REM VARCHAR2(255), "YLXX" VARCHAR2(50) NOT NULL ENABLE, "BYZD1"
REM VARCHAR2(10), "BYZD2" VARCHAR2(10), "BYZD3" VARCHAR2(10), "SFCQ"
REM VARCHAR2(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 TABLESPACE
REM "HWITS" LOGGING PARTITION BY LIST ("YLXX" ) (PARTITION "P1" VALUES
REM ('01') PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL
REM1031798784FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
REM TABLESPACE "HWITS_1" LOGGING NOCOMPRESS, PARTITION "P2" VALUES ('02')
REM PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL
REM 922746880FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
REM TABLESPACE "HWITS_2" LOGGING NOCOMPRESS, PARTITION "P3" VALUES ('03')
REM PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL
REM 981467136FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
REM TABLESPACE "HWITS_3" LOGGING NOCOMPRESS, PARTITION "P4" VALUES ('04')
…………
注意加黑部分,初始化的空间基本都在800M+,我虚拟机的C盘就剩3G了,这不是坑爹么……
一鼓作气,修改大小为65536,删掉REM,COPY到PL/SQL DEV里面,F8,OK……只可惜木有注释了。
附上两篇相关文章
1、Oracle exp compress参数引起的空间浪费
2、Oracle 表空间
分享到:
相关推荐
imp方式批量导入dmp文件。oracle数据库bat脚本。需要配置数据库的链接信息和dmp路径信息。
imp方式批量oracle数据库bat脚本,bat文件中有标明配置数据库的链接信息和.dmp路径信息
简单好用的Oracle 数据库导出导入命令及详解
oracle 使用IMP命令导入数据时 经常会碰到乱码问题,本文档从根本上解决了导入数据乱码根源及解决办法
oracle数据库导入导出,创建表空间,用户名等常见命令
数据库导入导出命令。。。。。。。。。。。。。。。。。。。。。。。。。。。
Oracle expimp导出导入命令及数据库备份 很详细
我乃新手,导入数据时走了很多弯路,特发此文,望可帮助像我这样的新手。
Oracle数据库导入导出命令[参考].pdf
此工具为java编写的桌面程序,可以进行Oracle数据库的导入和导出,里面的解压后有相应的操作说明文档,里面的jre不建议删除
Oracle数据库操作命令集合,一些常用的命令操作
oracle数据库exp_imp命令详解[参考].pdf
oracle数据库常用命令.txt
备份oracle数据库批处理命令, 自动备份数据库exp导出命令
oracle导入导出命令(imp、exp),描述oracle导入导出的三种方式
oracle数据库的导出导入,oracle数据库的导出导入,oracle数据库的导出导入
excel导入数据到数据库的步骤过程,希望对大家有用。
oracle数据库入门命令 1. SQL语言:关系数据库的标准语言 2. PL/SQL:过程化语言Procedural Language 3. SQL*Plus:简单的报表,操作系统接口 (1) 数据分区技术:只适用8.01后的版本,数据分散存放,不要放在一个...
1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具版本差异引起的问题,同时效率更高,但特别注意:...
oracle数据库或表导入导出 数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中