【发布时间】:2014-09-23 14:48:49
【问题描述】:
我有许多表使用基于函数的索引(如果您愿意,可以使用索引)。这些索引使用我定义的包中的函数。在导入用户的模式时,似乎首先导入了表,然后是索引,然后是包。
我说瘦是因为我得到了以下错误;
ORA-39083: Object type INDEX failed to create with error:
ORA-04067: not executed, package body "DEVELOPE.METAPHONE" does not exist
ORA-06508: PL/SQL: could not find program unit being called: "DEVELOPE.METAPHONE"
Failing sql is:
CREATE INDEX "DEVELOPE"."CLAIMS_PATIENT_INDEX_2" ON "DEVELOPE"."CLAIMS_PATIENT" (
"GENDER", "DEVELOPE"."METAPHONE"."GENPRIMKEY"("NAME_FIRSTNAME",3),
TO_NUMBER(TO_CHAR("DOB",'YYYY')), SUBSTR("ADDR_ZIP",1,3)) PCTFREE 10 INITRANS 2
MAXTRANS 166 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTEN
impdp 中是否有可以解决此问题的参数?还是其他解决方法?
如果我在 impdp 完成后创建索引,一切正常。
【问题讨论】:
-
这是“使用 REMAP_SCHEMA 导入的错误 17943479 ORA-39083/ORA-904,用于基于 PLSQL 函数的虚拟列或函数索引”。解决方法是“无”。该错误声称已在 12.2 中修复,但我在该版本中遇到了同样的问题。 5 年后遇到同样的问题很烦人,仍然没有简单的解决方法。