Text-Blob aus Datenbank auslesen
claus
- perl
Hi !
Auf einer Firebird-DB in einer Tabelle habe ich ein Text-Blob (Länge: 240zeichen). Sollte bei Oracle ähnlich sein...
Wie lese ich dieses mittels Perl-DBI aus, damit ich es in eine andere Tabelle überführen kann?
Folgendes versagt z.B. bei den Blobs:
my $sql = "SELECT "Anmerkung" FROM FAU_KOSTENTRAEGER";
my $sth = &Fbird_prepexe($dbh,$sql);
my $aref = $sth->fetchall_arrayref();
foreach my $row (@$aref) {
my $sql2 = "INSERT INTO FAU_KOSTENTRAEGER_2_TABELLE("Anmerkung") values ('$row->[0]')";
my $sth2 = &Fbird_prepexe($dbh2,$sql2); }
Hi claus,
Auf einer Firebird-DB in einer Tabelle habe ich ein Text-Blob (Länge: 240zeichen).
äh, was bitte ist an 240 Zeichen "large", und was ist an Text "binär"?
Viele Grüße
Michael
Hallo,
Auf einer Firebird-DB in einer Tabelle habe ich ein Text-Blob (Länge: 240zeichen). Sollte bei Oracle ähnlich sein...
Michael hat ja schon angedeutet, daß BLOBs für Text mit 240 Zeichen etwas übermotorisiert ist, aber wenn man's mag.
Grundsätzlich solltest Du BLOBs über Bind-Variablen einfügen, wobei das auch für andere Daten, im speziellen Textfelder, anzuraten ist.
siehe dazu http://search.cpan.org/author/TIMB/DBI-1.37/DBI.pm#Handling_BLOB_LONG_Memo_Fields
wenn es um größere BLOBs und Interbase/Firebird handelt, dann solltest Du auch den Hinweis unter
http://search.cpan.org/author/EDPRATOMO/DBD-InterBase-0.41/InterBase.pm#BUGS_LIMITATIONS
beachten.
Folgendes versagt z.B. bei den Blobs:
my $sql = "SELECT "Anmerkung" FROM FAU_KOSTENTRAEGER";
Wozu die Anführungszeichen? Der einzig mir bekannte Effekt ist der, daß die Spaltennamen dann exakt in der Groß-Kleinschreibung angegeben werden müssen.
my $sth = &Fbird_prepexe($dbh,$sql);
my $aref = $sth->fetchall_arrayref();foreach my $row (@$aref) {
my $sql2 = "INSERT INTO FAU_KOSTENTRAEGER_2_TABELLE("Anmerkung") values ('$row->[0]')";
my $sth2 = &Fbird_prepexe($dbh2,$sql2); }
hier würde ich mit den Bind-Variablen arbeiten.
Ganz allgemein geht mir hier die Behandlung, inklusive Ausgabe, von allfälligen Fehlern ab, was eine weitere Diagnose praktisch unmöglich macht.
Abgesehen davon hast Du uns noch nicht gesagt, was nun genau schief läuft.
Grüße
Klaus