Thread Perl , SQL und Datenbank (13 answers)
Opened by joelsok at 2010-07-15 16:22

joelsok
 2010-07-15 16:22
#139820 #139820
User since
2010-07-15
20 Artikel
BenutzerIn
[default_avatar]
Hallo Zuzammen,
ich möchte 50 000 Datensaätze von einer Datenbank zu der einer anderen Datenbank umkopieren. Beide Datenbanken haben die selbe Struktur. Die Daten sind in einer Tabelle namens: Adresse:

Probleme: Ich habe folegende sql statement mit perl auf der Datenbank ausgeführt. Mit einer zusäzliche Funktion nämlich getRowCount die mir die Anzahl der Zeile liefert soll. Anstatt mir 50 000 zeile zu liefern, liefert mmir diese Funktion nur 85 Zeile. Somit kann ich nur 85 Datensätze umkopieren

Hier die Funktion getRoeCount

Code (perl): (dl )
1
2
3
4
5
6
sub getRowCount 
{
    my $self = shift;
    print "getRowCount.RowCount=",$self->{'RowCount'},"\n" if ($debug);
    return $self->{'RowCount'};
}


hier ein Stück Code
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$query = "select * from Adresse";

# Query auf  Source Datenbank, Fehler abfangen
if ($odbc->query($query))
{   # Rückgabewert 1 -> SQL-Abfrage fehlgeschlagen
    $error = $odbc->getErrorText; # Fehlertext ermitteln
    #$logger->writeError ("error on SQL statement");
    #$logger->writeError ("> $error");
    $exitCode = 2;
    #goto END;
}


# Abfrage ob mehrere Ergebnisse vorhanden sind
if ($odbc->getRowCount() > 0)
{
       my $tester = $odbc->getRowCount();
       print "source: $tester\n";                      #-->  leider bekomme ich hier 85
    for (my $i=1; $i <= $odbc->getRowCount(); $i++)
    {
        $name = $odbc->getColumn($i,"Name");
        $old_Incident_recId = $odbc->getColumn($i,"RecId");


wie gesagt in der quelle Datenbank sind 50 000 Datensätze, und diese getRowCount liefert mir nur 85 Zeile anstatt 50000.

Ich bin für jede Hilfe dankbar

modedit betterworld: Perl-Tags.
Last edited: 2010-07-15 16:42:16 +0200 (CEST)

View full thread Perl , SQL und Datenbank