claus: Text-Blob aus Datenbank auslesen

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:

1. connect...

my $sql  = "SELECT "Anmerkung" FROM FAU_KOSTENTRAEGER";

prepare und execute werden ausgeführt...

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); }

2. disconnect...

  1. 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

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
     => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
  2. 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