Object type TYPE failed to create with error

 

复制代码
ORA-39083: Object type TYPE failed to create with error:
ORA-02304: invalid object identifier literal
Failing sql is:
CREATE TYPE "PIVAS_TAIZHOU"."OBJECTIDLIST"   OID '55D573CC891E36AFE05011AC1D7F1C93' IS TABLE OF INTEGER;
ORA-39083: Object type TYPE failed to create with error:
ORA-02304: invalid object identifier literal
Failing sql is:
CREATE TYPE "PIVAS_TAIZHOU"."MIGR_REPORT_SUM_ROW"   OID '55D573CC890336AFE05011AC1D7F1C93' AS OBJECT
       (LABEL           VARCHAR2(50),
            SCHEMA_SUM      NUMBER,
        TABLE_SUM       NUMBER,
                INDEX_SUM       NUMBER,
                CONSTRAINT_SUM  NUMBER,
                VIEW_SUM        NUMBER,
                TRIGGER_SUM     NUMBER,
                SP_SUM          NUMBER
        );
复制代码

对于create type失败,可在导入命令中末尾加上 transform=OID:N

impdp test/test directory=dump_dir dumpfile=TZ_PIVAS_20190220.dmp logfile=TZ_PIVAS_20190220.log remap_schema=pivas:pivas_taizhou remap_tablespace=pivas:PIVAS_TAIZHOU table_exists_action=replace transform=OID:N

 

可以参考下面的说明。

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

posted @   VipSoft  阅读(657)  评论(0编辑  收藏  举报
编辑推荐:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2013-02-20 Oracle Database Link
点击右上角即可分享
微信分享提示