Thread Perl/DBI - UPDATE "hängt" (18 answers)
Opened by ptk at 2005-02-01 17:02

nes
 2005-02-03 11:08
#32988 #32988
User since
2005-01-24
14 Artikel
BenutzerIn
[default_avatar]
Herzlichen Dank allen Helfern, es klappt :)

Ich habe zuerstmal die Variablen rausgenommen, und das betreffende Statement direkt, ohne übergebene Variablen, also so ausgeführt:
Code: (dl )
1
2
3
4
5
my $sth = $dbh->prepare(q{
UPDATE DGKTO_BASIS
SET SVT_BEITRAGSKONTONUMMER = '00000000099'
WHERE VERSICHERUNGSTRAEGERCODE = '04' and DIENSTGEBERKONTONUMMER = '00000015'})
|| die "Can't prepare statement: $DBI::errstr";

Das brachte folgenden, sprechende Fehlermeldung:
Code: (dl )
1
2
3
C:\mist>perl mist.pl
DBD::Oracle::st execute failed: ORA-01401: inserted value too large for column (
DBD: oexec error) at mist.pl line 27.


Somit war's mir klar. Gleiche Anweisung, wobei aber das Feld $upd lt. Datenbankbeschreibung ein Byte verkürzt ist, funktioniert korrekt! Also so:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
my $sth = $dbh->prepare(q{
UPDATE DGKTO_BASIS
SET SVT_BEITRAGSKONTONUMMER = ?
WHERE VERSICHERUNGSTRAEGERCODE = ? and DIENSTGEBERKONTONUMMER = ?})
|| die "Can't prepare statement: $DBI::errstr";

my $upd = "0000000100"; # Achtung auf die Länge!!
my $key1 = "04";
my $key2 = "00000015";

$sth->execute($upd, $key1, $key2) or die $dbh->errstr;

Ich persönlich halte das tatsächlich für einen Fehler im Modul Oracle::DBD - aber egal, hauptsache es geht jetzt. :)

Danke nochmals!

lg., nes

View full thread Perl/DBI - UPDATE "hängt"