文档解释
ORA-30091: secondary translation table not loaded
Cause: The secondary translation table for DST patching on TSTZ data was not loaded.
Action: Load the secondary translation table.
错误说明
ORA-30091:secondary translation table not loaded 错误指出了系统无法找到二级翻译表。一般是在使用MULTI_BYTE,AL32UTF8,AL16UTF16之前检查二级翻译表没有被加载的情况下发生此错误。此错误是由于系统无法找到指定字符集的辅助翻译表引起的,如果这个字符集使用了一些特殊字符,就需要加载对应的辅助翻译表,以支持该字符集
常见案例
在某些情况下,在建立数据库时使用MULTI_BYTE字符集,可能会导致此错误的发生。此时,系统会自动报出错误:ORA-30091:secondary translation table not loaded。此错误会影响到数据库使用,如果系统产生了此错误,一定要及时处理,否则有可能对数据库的使用产生严重的影响。
解决方法
发生ORA-30091:secondary translation table not loaded错误时,可以使用以下步骤解决:
1.首先要确定当前数据库实例使用的字符集。
2.如果字符集是MULTI_BYTE,那么需要运行指令“alter database enable secondary translation”,该指令会检测字符集,如果存在辅助翻译表,则会加载。
3.如果字符集是AL32UTF8或AL16UTF16,则需要检查ORACLE_HOMEdatabasecharacterset目录中是否有NLS_Lang.txt文件,如果没有,则需要从此字符集中下载语言文件,并将其放到ORACLE_HOMEdatabasecharacterset目录。
4.最后,在重新启动数据库实例之前,使用SQL命令“alter system enable dictionary translation”使辅助翻译表生效,然后重启实例。