如何在没有文本和存储在变量中的select上获取确切的Oracle错误消息

时间:2010-03-05 21:19:31

标签: perl oracle error-handling dbi

  

可能重复:
  Perl DBI Error Msg: Can't call method “selectcol_arrayref” on an undefined value

my ($ret) = $l_dbh->selectrow_array("select dummy from "
                        . $l_dbh->quote_identifier($dblink, 'SYSIBM', "SYSDUMMY1") );
                          $ret;
                           };

2 个答案:

答案 0 :(得分:3)

您的问题很难说清楚,但听起来您正在寻找DBI error attributeserr(本机数据库错误代码),errstr(本机数据库错误消息)和state(标准的SQLSTATE五字符格式,但不受广泛支持)。

答案 1 :(得分:0)

我认为你想要的是跟随你的陈述:

my $sqlerr = $l_dbh->errstr;

但是,如果设置了$ l_dbh-> {RaiseError},则可能无法实现这一点,因为这会导致程序因任何错误而崩溃(带有错误消息)。所以你会想要做一个

$l_dbh->{RaiseError} = 0;

第一