如何使用 expdp export/import 对象和集合类型 - Oracle

How to export/import object and collection types using expdp - Oracle

我正在尝试使用 expdp 命令导出架构。所有模式对象都被导入,对象和集合类型除外。 我需要为此设置特定参数吗?

--Commands
--Export
expdp system/pass@localhost:1521/orcl directory=my_dir schemas = tony_hr
dumpfile=tony_hr.dmp logfile=tpny_hr.log
--Import
impdp system/pass@localhost:1521/orcl directory=my_dir dumpfile=hr_tony.dmp 
logfile=hr_tony_imp.log remap_schema=tony_hr:hr2

我在名为 tony_hr 的测试模式中模拟了错误。这是其所有对象的图片:

导出执行成功,但是当我尝试导入(使用 remap_schema 到 hr2)时出现一些错误。这是导入失败的部分。

ORA-39083: Fallo de creación del tipo de objeto TYPE:"HR2"."O_SEAT" con el error:
ORA-02304: literal de identificador de objeto no válido
El sql que falla es:
CREATE EDITIONABLE TYPE "HR2"."O_SEAT"   OID '02C3315E969E44D6BC7D797EDD9F2D96' IS OBJECT
(
    seat_id VARCHAR2 (8 BYTE),
    seat_category_name VARCHAR2 (32 BYTE)
ORA-39083: Fallo de creación del tipo de objeto TYPE:"HR2"."M_SEATS" con el error:
ORA-02304: literal de identificador de objeto no válido
El sql que falla es:
CREATE EDITIONABLE TYPE "HR2"."M_SEATS"   OID '0A71AFB95CCE4CC78558B571199AF83F' IS TABLE OF o_seat;

抱歉,因为错误消息是西班牙语。有疑问请追问

请在您的 impdp 命令中使用以下参数,它也应该导入您的其他集合类型对象,

REMAP_SCHEMA=Old_username:New_Username (in case of different schema names )
REMAP_TABLESPACE=Old_tablespace_name:New_tablespace_name ( in case of diff tablespace name)
TRANSFORM=SEGMENT_ATTRIBUTES:n
TRANSFORM=OID:n