This is my first post here.
I am executing a Perl script which makes use of 'DBI' module.
I am performing a select operation on a table through the Perl script and I
am getting following error on the console:
DBD::ODBC::st execute failed: [Oracle][ODBC][Ora]ORA-00942: table or view
does not exist
(SQL-42S02) at Test.pl line 67
The error message is well justified as the table doesn't exist.
However I just wanted to know if there is a way to catch this error message
through some variable so that I can print it in a log file as well.
Cheers,
Parag
for more info:
http://search.cpan.org/~timb/DBI/DBI.pm#err
eval {
my $dbh = DBI->connect($connstr, $user, $pass, {RaiseError => 1});
my $stmt = $dbh->prepare($select_sql);
$stmt->execute();
while (my @row = $stmt->fetchrow_array()) {
}
};
if ($@) {
# error message, if one occurs, will now be in $@
# for any error thrown by DBI
It did the trick -
http://search.cpan.org/~timb/DBI/DBI.pm#$DBI::errstr<http://search.cpan.org/%7Etimb/DBI/DBI.pm#$DBI::errstr>
Cheers,
Parag
On Mon, Nov 9, 2009 at 7:52 PM, Tim Tisdall <tis...@gmail.com> wrote:
> If you have something like $dbh->do(); You can get the error code
> with $dbh->err and the full error message with $dbh-errstr .
>
> for more info:
> http://search.cpan.org/~timb/DBI/DBI.pm#err<http://search.cpan.org/%7Etimb/DBI/DBI.pm#err>
You'll be glad you did.
It is a good idea to review it periodically as well.
Which reminds me ...
Jared Still
Certifiable Oracle DBA and Part Time Perl Evangelist
Oracle Blog: http://jkstill.blogspot.com
Home Page: http://jaredstill.com