Data Pump Issue-- ORA-02304_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2805 | 回复: 0   主题: Data Pump Issue-- ORA-02304        下一篇 
shylone
注册用户
等级:下士
经验:199
发帖:90
精华:0
注册:2011-11-24
状态:离线
发送短消息息给shylone 加好友    发送短消息息给shylone 发消息
发表于: IP:您无权察看 2015-4-17 11:57:46 | [全部帖] [楼主帖] 楼主

在尝试用impdp把一个dump文件从一个schema导入到另外一个schema (两个schema位于同一个数据库上,需要用到remap_schema参数来进行schema的映射转换)遇到了诸多类似如下的错误....

 (cmd> impdp test/test directory=dump_dir dumpfile=dump.dmp logfile=dump.log remap_schema=frank:test)
ORA-39083: Object type TYPE failed to create with error:
ORA-02304:  invalid object identifier literal
Failing sql is:
CREATE TYPE "TEST"."BV_MULTI_VALUE_ROW"   OID '60D2BBFD90E04FABBFEE0C45D303F003' AS OBJECT (
VALUE varchar2(512),
DESCRIPTION VARCHAR2(1000)
);


注意到在创建type的时候,“多出来”一段OID的东东,很是奇怪,因为平时在创建一个type的时候,根本就不会涉及到指定OID的问题, 问题八成就是出在这个OID上。那么这个OID到底是什么呢?为什么会导致ORA-02304的错误呢?

OID应该就是Object Identifier, 在数据库中每个object都有自己唯一的标识,也就是object id. 因此把一个Object从一个schema导入到另外一个schema的时候(在同一个数据库上),如果这个OID也保持不变的话,那么就会出现多个Object共享同一个object id的问题,这显然是不行的。因此会出现这个invalid object identifier的问题。

那么如何解决这个问题呢? 通过impdp help=y 可以看到有一个参数来解决这个问题,

TRANSFORM        Metadata transform to apply to applicable objects.
Valid transform keywords: SEGMENT_ATTRIBUTES, STORAGE
OID, and PCTSPACE.


看看帮助文档,得到如下信息,

 OID - If the value is specified as n, the assignment of the exported OID during the creation of object tables and types is inhibited. Instead, a new OID is assigned.This can be useful for cloning schemas, but does not affect referenced objects. The default value is y.


大意就是说如果TRANSFORM参数设置成OID=N,表示在imp的时候,新创建的表或这个类型会赋予新的OID,而不是dmp文件中包含的OID的值。但是这个参数的默认值是OID=Y,因此在进行Imp的时候,新创建的表或者type会赋予同样的OID,如果是位于同一个数据库上的不同schema,那就会造成OID冲突的问题,因此解决这个问题也很简单,只需要在impdp的时候,显示设置transform 参数为OID=N既可以了。如下所示,

 (cmd> impdp test/test directory=dump_dir dumpfile=dump.dmp logfile=dump.log remap_schema=frank:test transform=OID:N)


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论