Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6675[/thread]

Perl/DBI - Fehler abfangen

Leser: 6


<< >> 3 Einträge, 1 Seite
nes
 2005-01-31 15:12
#51430 #51430
User since
2005-01-24
14 Artikel
BenutzerIn
[default_avatar]
Hallo allseits!

Ich hab einen grössere Menge teils auch fehlerhafte Daten in eine Oracle-DB zu laden. Mein Script funktioniert auch soweit ganz gut, nur werd ich mit einer Menge Oracle - Fehlermeldungen "zugetextet", die würde ich ganz gerne abfangen. Ich hätte gedacht daß das mit "eval" funktioniert, tuts aber nicht ... hier ein Codeschnippsel:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
my $dbh = DBI->connect( "dbi:Oracle:$db_host", $db_user, $db_pass,
) || die "Database connection not made: $DBI::errstr";
...
my $sth = $dbh->prepare(q{
INSERT into DGKTO_BASIS
( Feld1, Feld2, Feld3, Feld4 )
) values (
?, ?, TO_DATE(?,'YYYYMMDD'), ?
}) || die "Can't prepare statement: $DBI::errstr";
...
# Hauptschleife
...
eval {
$sth->execute ($feld1, $feld2, $feld3, $feld4);
};

if ( $DBI::err ) {
# weiterer Code
}


Beim Ablauf des Scripts kommen Fehler wie
Quote
DBD::Oracle::st execute failed: ORA-01400: cannot insert NULL into ("ZP"."DGKTO_
BASIS"."FELD1") (DBD: oexec error) at load_dgkto_stamm.pl lin
e 121, <GEN0> line 1.

Genau die hätte ich gerne weg.

lg., nes
renee
 2005-01-31 15:20
#51431 #51431
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my $dbh = DBI->connect( "dbi:Oracle:$db_host", $db_user, $db_pass,
) || die "Database connection not made: $DBI::errstr";

$dbh->{RaiseError} = 0;
$dbh->{PrintError} = 0;

my $sth = $dbh->prepare(q{
INSERT into DGKTO_BASIS
( Feld1, Feld2, Feld3, Feld4 )
) values (
?, ?, TO_DATE(?,'YYYYMMDD'), ?
}) || die "Can't prepare statement: $DBI::errstr";
...
# Hauptschleife
...
if($sth->execute ($feld1, $feld2, $feld3, $feld4)){
...
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
nes
 2005-01-31 15:24
#51432 #51432
User since
2005-01-24
14 Artikel
BenutzerIn
[default_avatar]
Danke renee, genau das war's :)
<< >> 3 Einträge, 1 Seite



View all threads created 2005-01-31 15:12.