Oracle数据库imp命令导入时1659错误处理

今儿在自己电脑上搭建开发环境,在给数据库导入表结构以及数据时报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

REM  1031798784 FREELISTS 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  922746880 FREELISTS 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  981467136 FREELISTS 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 表空间

时间: 2024-12-26 18:37:34

Oracle数据库imp命令导入时1659错误处理的相关文章

Oracle exp/imp命令快速导入导出数据

用exp命令导出表结构,不导出表数据.只需在命令行里加一个参数rows=n即可.表示不导出表数据. exp username/pwd@sid file=d:databak.dmp owner=(user)rows=n ******************************************************************************************************************** oracle exp/imp命令详解 E:>ex

安oracle数据库出现ORA-12560: TNS: 协议适配器错误

问题描述 安oracle数据库出现ORA-12560: TNS: 协议适配器错误 如题,本来想重装,但是程序里没有显示oracle数据库,也就找不到卸载,有大神知道应该怎么办吗? 解决方案 oracle数据库导入问题--ORA-12560: TNS: 协议适配器错误Oracle:ORA-12560: TNS: 协议适配器错误oracle:ora-12560:tns:协议适配器错误 解决方案二: http://zhidao.baidu.com/link?url=Ovflvu4-1L6YDUZNO0

Oracle数据库备份恢复的概念:错误类型、实例恢复方法等

1.明确Oracle数据库中可能发生的错误类型;  2.描述实例恢复的方法;  3.明确checkpoints,redo log files和archive log files的重要性;  4.配置快速闪回区;  5.配置归档模式; Part of Your Job DBA的职责就是要保证数据库是可使用的而且是高效的;  1.避免数据库发生常规错误:比如用户无权限,表空间不足等等;  2.增加MTBF(Mean Time Between Failures),即两次发生故障的时间间隔;  3.使用

Oracle数据库使用sqlplus时的连接错误与方向键乱码解决_oracle

连接错误安装好以后,我登录企业后台(http://ubuntu:1158/em)报错,用sqlplus连接oracle也报错. 一,遇到的错误如下 1,ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach) 2,ORA-28547: connection to server failed, probable Oracle Net

Oracle的imp命令导入备份数据

笔者在做项目过程中遇到以下问题,在客户提供的数据库备份文件需要导入到数据库中,以便使用,数据库为Oracle 9.1.1,安装在Windows Server 2000 JP系统中,服务器端字符集为JAPANESE_JAPAN_UTF8,而客户端使用的是中文Windows Server 2000系统,字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK. 在插入数据过程中出现如下问题: C:\oracle\ora90\BIN>imp scott/tiger@SDES full

Oracle中imp命令使用出错——未知命令开头

大家要知道imp是在cmd命令行中才起作用了.不要弄到sqlplus里面了.要注意^  ^.

Oracle数据库常用命令

导出表数据 exp user/pwd@dbname file=filename.dmp tables=tbl_name rows=y indexes=n triggers=n grants=n 导入表数据 imp user/pwd@dbname file=tbl_data.dmp log=logfile.log FULL=Y 加载文本数据 sqlldr user/pwd@dbname control_file_name.ctl or SQLLDR CONTROL=sample.ctl, LOG=

Oracle数据库备份技巧

  利用下面的列出的技巧来确保你不会在每周一次的数据库备份过程中忘记关键步骤. 每周一次备份主数据库.如果你创建.修改或者停止一个数据库,添加新的SQL Server消息,添加或者停止连接服务器,或者添加记录设备,那就进行手工备份. 每天备份一次msdb数据库.它一般非常小,但很重要,因为它包含了所有的SQL Server工作.操作和计划任务. 只有当你修改它时,才有必要备份模型数据库. 用SQL Server Agent来安排你的备份工作的时间表. 如果在你的生产(production)环境中

ORACLE数据库对象统计分析技术应用

oracle|对象|数据|数据库|统计 数据库对象统计分析技术应用   ORACLE在执行SQL时如果使用成本方式分析则所有的成本分析信息来源依靠于系统的统计分析表(DBA_TABLES.DBA_INDEXES.DBA_TAB_COLUMNS)数据,如果说统计分析的数据是不准确的,那可能会使ORACLE分析出来的路径执行性能极差,所以统计分析数据是影响ORACLE性能极重要的信息.   统计分析主要包括产生表及索引的统计信息 表的统计信息主要包括表的行数,每行的平均长度(字节),空闲块,统计时间