文档解释
ORA-09770: pws_look_up: translation failure.
Cause: The pws_look_up routine failed to translate the name of the (Oracle helper) executable.
Action: Make sure ORACLE_SID and ORACLE_HOME are set and correct. Additional information gives the translation error code.
ORA-09770:PWS_LOOK_UP错误是一种特殊的Oracle系统错误,当存在调用过程中出现转换失败情况时,就会出现该错误信息,通常发生在用户尝试使用 Oracle dbms_output中printf函数及运行后台程序中,出现这样的情况时,将会报出ORA-09770错误,提示程序中存在词法错误。
Oracle 官方对此错误的说明是:检测到程序在完成对给定字符串及字符集的转换系统操作时失败。
常见案例
1. 当用户尝试调用 printf,lprintf 等格式化函数时,如果传入的参数不正确,将会出现ORA-09770错误;
2. 当运行dbms_output背景程序时,出现字符串与字符集转换失败时,将会出现ORA-09770错误;
3. 在对字符集合(character set)的转换过程中,如果不支持该字符集转换操作将会出现ORA-09770错误;
4. 在进行VARCHAR2类型的转换时,如果字符串大小超出tunable_max_string_size设定的值,将会出现ORA-09770错误;
5. 在用户尝试执行sql对象时,如果出现调用函数的参数类型错误,则会出现ORA-09770;
正常处理方法及步骤
1. 首先查看官方文档或联系技术支持获取错误信息的详细说明;
2. 根据错误信息提供的相关参数,检查系统和服务器设置;
3. 检查客户端数据库使用的字符集是否支持该转换操作;
4. 检查tunable_max_string_size 参数,确认是否超出允许的参数值;
5. 检查调用的函数及参数值,或检查当前执行的sql对象是否正确;
6. 同时也要检查服务器的其他参数值,包括:language_idx_seq_len、text_name_len、text_desc_len等,确认是否与设定值一致;
7. 在此后可以考虑更新Oracle版本以解决不支持字符集转换已经字符串及字符集大小超出限定值的情况。