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

时间:2015-04-06 06:33:36

标签: oracle

对于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行。

     

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

任何人都可以帮我这样做。

提前致谢。

1 个答案:

答案 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!';
}