今天在使用impdp导入的时候(同一数据库中转换schema),遇到了
ORA-39083: Object type TYPE failed to create with error:
ORA-02304: invalid object identifier literal
具体报错的sql是 CREATE TYPE "xx"."xxxxx" OID '1J35J43H1J5H2JK3HJ52H3J45' AS OBJECT
此type无法创建成功,原因是OID重复,OID就是object id。
查看impdp help=y 可以使用一个参数:transform
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.
这个参数默认是Y,如果改成N,那么导入的时候会把各个对象重新赋予新的OID。
transform=oid:n
这样,再用impdp导入的时候就不会出现
ORA-39083: Object type TYPE failed to create with error:
ORA-02304: invalid object identifier literal
注意:exp/imp不支持oid转换,又是一个使用数据泵的优势。