DBD::Oracle::st执行失败:系统生成消息



对于oracle系统,在准备/执行查询期间生成的软件错误消息无效。在网页上向用户显示完整的查询。希望用用户通用消息替换系统生成的消息。

示例:

软件错误:

DBD::Oracle::st执行失败:ORA-01722:无效数字(DBD错误:错误可能位于"SELECT EQUIPID,EQUIPSHORTNAME,MAXLIMITEDDAYS,STATUS,EQUIPNAME FROM LAB_EQUPMENT_DETAILS WHERE CATEGORYID="3"AND SUBCATEGORID="lt;>"AND STATUS!="DELETE"中的字符136处的<>指示符附近)[对于语句"SELECT EQUIPID,EQUIPSHORTNAME,MAXLIMITEDDAYS,STATUS,EQUIPNAME FROM LAB_EQUPMENT_DETAILS WHERE CATEGORYID='3'AND SUBCATEGORY ID='***'AND STATUS!='DELETE'"],位于/proj/aa/bb/Source/Global_Routines_general_apps.pm第126行。

如需帮助,请发送邮件给网站管理员([…]),给出此错误消息以及错误的时间和日期。

有人能帮我做这件事吗。

提前谢谢。

只需将execute语句封装在eval块中,即可捕获错误。

eval {
$sth->execute();
...
};
if ( $@ ) {
# log the full error message
write_log( $sth->errstr );
# and re-throw the common message 
die 'HEY!!!! Something is messed up here!';
}

最新更新