ORACLE数据库导表的时候,出现IMP-00017: 由于 ORACLE 错误 604:递归SQL级别1出现错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE数据库导表的时候,出现IMP-00017: 由于 ORACLE 错误 604:递归SQL级别1出现错误相关的知识,希望对你有一定的参考价值。

我在导表的时候,数据库提示这个错误 ,请各位高手帮我指导下,谢谢
IMP-00017: 由于 ORACLE 错误 604, 以下语句失败:
"CREATE TABLE "APP_BLOB" ("FILEID" VARCHAR2(32) NOT NULL ENABLE, "BLOB" BLOB"
", "DATETIME" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(I"
"NITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "
""USERS" LOGGING NOCOMPRESS LOB ("BLOB") STORE AS (TABLESPACE "USERS" ENABL"
"E STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING STORAGE(INITIAL "
"65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))"
IMP-00003: 遇到 ORACLE 错误 604
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-08102: 未找到索引关键字, 对象号 49, 文件 1, 块 27278 (2)
IMP-00017: 由于 ORACLE 错误 604, 以下语句失败:
"CREATE TABLE "APP_FILEINFO" ("FILEID" VARCHAR2(32) NOT NULL ENABLE, "FILENA"
"ME" VARCHAR2(100) NOT NULL ENABLE, "FILESOURCE" VARCHAR2(10), "MIMETYPE" VA"
"RCHAR2(120), "COMPRESSED" VARCHAR2(1), "FILEDATE" DATE, "FILESIZE" NUMBER(1"
"2, 0), "BUSINESSID" VARCHAR2(100)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRA"
"NS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFA"
"ULT) TABLESPACE "USERS" LOGGING NOCOMPRESS"

参考技术A 没有遇到过,首先确定你的数据库是正常的吗?
找到49#的OBJECT是什么?
select object_name,object_type from dba_objects where object_id=49 ;
估计是索引吧,给它修理一下,
alter index .. rebuild ;
参考技术B 你用的什么命令删除的? 正常是 drop user 用户名 cascade;
如果不好用,请把你的命令和出错信息原封不动的贴到问题上来,尤其是错误号
参考技术C 1

1
参考技术D 求答案

oracle的imp使用方法

1、exp和imp工具是否可以跨平台使用?比如我在windows上用exp导出数据之后到linux或者unix上用imp导入数据?
可以,但一般都是用同样的工具做导出和导入,windows上和unix上的endianness不同,混用的话,这个工具有bug。
2、exp和imp工具是否可以跨版本使用?比如我用9i的exp工具导出数据之后到10g上用imp导入数据这样是否可以?
这个工具有挺严格的版本限制,不能跨版本使用,你举例的这种会不识别的。
3、exp导出的时候,table参数填写的是多个表名,那么在imp的时候是否可以只导入其中的某一个表,该如何操作?
exp
tables=(tab1,tab2)
imp
tables=(tab2)
没有什么特别的,这个自己试一下就知道了
4、exp导出的数据,在imp的时候如果机器上没有对应的表,imp工具是否会自动创建表结构?是否必须我手动先创建好表结构才能imp成功?
imp时候会自动执行create语句,然后才是insert,所以你的问题恰好说反了,
是如果你已经建好表结构的话,imp会报警告,说这个表已经存在了,需要在导入时ignore=y
5、exp导出的数据,在imp的时候目标机器上的数据库表空间分配是否必须和原来的机器上的一致(空间大小肯定够,就是空间的其他配置是否必须一致)?如果不一致是否可以?
这个工具有个限制,导出时候的表空间名必须就是导入到这个同样名称的表空间里面,如果没有这个表空间的话,导入失败,
不知道你说的其他配置是什么配置,我只能说只要名称相同的话,问题不大,具体问题具体分析了。
参考技术A imp
system/manager
file=bible_db
log=dible_db
full=y
ignore=y
system/manager是用户名和密码
file=bible_db
是要导入的文件
log=dible_db是生成日志的名称
full=y是导入整个文件
ignore=y是忽略创建错误
数据库是a.dmp我想导入的时候,数据库是b
imp
system/manager@服务SID
file=bible_db.dmp
log=dible_db
full=y
ignore=y
fromuser=a
touser=b
详细用法可在“运行”中输入cmd进入命令窗口键入
'IMP
HELP=Y'
获取帮助信息提示

以上是关于ORACLE数据库导表的时候,出现IMP-00017: 由于 ORACLE 错误 604:递归SQL级别1出现错误的主要内容,如果未能解决你的问题,请参考以下文章

IMP/EXP,数据泵,SQL*Loader ,rman,oracle数据库备份

mysql cluster导表时报1114问题

如何更改生产MySQL数据库库表的字符集

请问oracle数据库如何导出数据库的表结构?

oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临时表的所有数据,最后drop这个表。

mysql数据库创建表的时候,出现您的SQL语法有错误