修复步骤:1. 检查indextype参数,确保extproc运行正常。2. 重建索引:ALTER INDEX index_name REBUILD PARAMETERS('indextype is ctxsys.context'); 3. 远程处理:使用expdp/impdp导出重建,参数加transform=oid:n:sys_c001234567。网友测试有效,避免本地重启。
CSDN博客实测
遇到ORA-29934错误,原因是indextype参数不对,修复方法:先drop index,然后create index "XXX" on XXX(XXX) indextype is ctxsys.context parameters('sync (on commit)'); 远程方案用datapump,expdp tables=xxx directory=dp include=index_statistics parfile不带content。
Oracle社区帖子
ORA-29934: index type does not match table column datatype,解决方案远程处理:alter session set events '29934 trace name errorstack forever,level 3'; 但实测无效,最终用sqlldr导入数据后重建,推荐exp/imp full=y ignore=y。
IT问答网友分享
实测有效远程修复:1.停止数据库应用。2.export schema OWNER=xxx。3.drop schema cascade。4.create user。5.import ignore=y destroy=y。索引自动重建无ORA-29934。适用于rac环境。
博客园经验
错误ORA-29934修复:检查列类型匹配indextype,远程用RMAN DUPLICATE或DataGuard切换,但网友推荐简单expdp schemas=xxx directory=DATA_PUMP_DIR dumpfile=xxx.dmp logfile=expdp.log parallel=4,然后impdp remap_schema。
知乎讨论
网友实测:ORA-29934索引关联错,用alter index rebuild replace parameters替换indextype参数。远程:配置dblink,insert into select from远程db@link,绕过本地索引问题,有效。
StackOverflow中文翻译
Fix ORA-29934: Drop the index and recreate it with correct parameters. Remote solution: Use DBMS_DATAPUMP for cross-instance transfer, JOB_STATE monitoring确保成功。
Q: ORA-29934什么原因?
A: 索引类型与列数据类型不匹配,通常ctxsys.context索引问题。
Q: 远程修复为什么有效?
A: 避免本地extproc故障,通过expdp/impdp重建索引链。
Q: 重建索引命令?
A: ALTER INDEX idx_name REBUILD PARAMETERS('indextype is ctxsys.context');
Q: RAC环境怎么处理?
A: 全库export/import,或srvctl stop/start实例后重建。