请教!关于自定义类型导入导出的问题

amarn 2003-10-16 02:45:20
在某数据库中,用exp导出用户a下的所有数据,包括自定义的类型"T_VARCHAR2_TAB".然后用imp将导出的数据导入同一数据库的用户b中,发现表和序列都可以导入,但是自定义的类型导入失败.

报错如下

IMP-00017: 由于 ORACLE 的 2304 错误,以下的语句失败
"CREATE TYPE "T_VARCHAR2_TAB" TIMESTAMP '2003-10-16:09:21:43' OID '8B1C86673"
"C0044E686F505C7B9759347' "
" AS TABLE OF VARCHAR2(30)"
""
""
IMP-00003: 遇到 ORACLE 错误 2304
ORA-02304: 无效的对象标识文字

推测出错的原因是OID指向的对象已经存在,因此这条语句执行失败.

因为工作需要,经常需要在数据库间倒数据,同一套数据也可能需要在一个库中导入多次(多个用户).这个问题的存在令导自定义类型无法进行(只能导入第一个用户,其后的就失败).

不知这个问题如何解决?请各位指点,谢谢.
...全文
80 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
amarn 2003-10-16
  • 打赏
  • 举报
回复
字符集是一样的,因为上面说的就是两次导入的都是导到同一数据库,第一次可以,第二次就失败了.

如果把上面说的用户a的自定义类型删掉,导入用户b就能导入类型.我想还是oid的问题,数据库可能认为oid对应的对象已经存在,因此不允许再创建.

而且当我执行
CREATE TYPE "T_VARCHAR2_TAB" TIMESTAMP '2003-10-16:09:21:43' OID '8B1C86673C0044E686F505C7B9759347' AS TABLE OF VARCHAR2(30)
报的也是同样的错.

如果把"OID '8B1C86673C0044E686F505C7B9759347'"去掉,或是将'8B1C86673C0044E686F505C7B9759347'改成某一可能未用过的数,就可以创建类型.
LGQDUCKY 2003-10-16
  • 打赏
  • 举报
回复
数据库的版本和字符级是否一样?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧