对于oracle系统在准备/执行查询期间生成的软件错误消息无效。在网页上向用户显示完整查询。希望用用户常用消息替换系统生成的消息。
示例:
软件错误:
DBD :: Oracle :: st执行失败:ORA-01722:无效数字(DBD错误:错误可能接近< >指示符位于' SELECT EQUIPID,EQUIPSHORTNAME,MAXLIMITEDDAYS,STATUS ,EQUIPNAME FROM LAB_EQUIPMENT_DETAILS CATEREORYID =' 3' AND SUBCATEGORYID =< >'' AND STATUS!=' DELETE'' )[for Statement" SELECT EQUIPID,EQUIPSHORTNAME,MAXLIMITEDDAYS,STATUS,EQUIPNAME FROM LAB_EQUIPMENT_DETAILS CATEREORYID =' 3' AND SUBCATEGORYID =' ****' AND STATUS!='删除'"] / proj/aa/bb/Source/Global_Routines_general_apps.pm第126行。
如需帮助,请发送邮件给网站管理员([...]),提供此错误消息以及错误的时间和日期。
任何人都可以帮我这样做。
提前致谢。
答案 0 :(得分:0)
只需将执行语句包装在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!';
}