文档解释
ORA-31078: error in SQL mapping information
Cause: There is an error in the SQL type and table specification within the XML Schema.
Action: Ensure that all specified SQL types and tables are valid and compatible with the corresponding XML types.
ORA-31078: 该错误指示SQL映射信息有效性检查失败。根据Oracle官方文档,该错误通常是由Oracle索引描述器索引描述器(IRD)中的CONC_PPOS_ENDPOINT参数的值引起的。
官方解释
当构建SQL映射信息出现问题的时候,此错误会发生。 CON_PPOS_ENDPOINT参数确定主从节点的位置,也就是控制文件,实例参数文件,online redo日志文件等在你的多实例环境的位置。设置CON_PPOS_ENDPOINT参数的值时出现问题,就会导致上面的ORA-31078错误发生。
常见案例
1、当基于RAC环境的多PFILE系统参数描述表数据库中CONC_PPOS_ENDPOINT属性被设置为“?”时,可能会出现ORA-31078:error in SQL mapping information错误。
2、使用DROP_ENDPOINT或STOP_ENDPOINT函数时,也可能会出现ORA-31078:error in SQL mapping information错误。
一般处理方法及步骤
1、首先,检查CONC_POS_ENDPOINT参数的值,确保其正确。
2、如果CONC_POS_ENDPOINT的值设置正确,则可以使用SRVCTL重新设置CONC_POS_ENDPOINT参数:SRVCTL set paramconf -g spfile -y pfile -c CONC_PPOS_ENDPOINT -x xxxx
3、如果SRVCTL设置错误,则可以通过SQL需要设置CONC_POS_ENDPOINT参数:alter system set conc_ppos_endpoint=xxxx
4、如果SQL设置也同样失败,则可采取一些其他措施:在每个结点停止实例,手动修改参数文件(pfile)的CONC_POS_ENDPOINT参数,然后重新启动实例即可解决该问题。