DBi und DBD-Oracle
Alex
- perl
Hallo,
Ich möchte mit Perl eine Verbindung zu einer Oracle Datenbank herstellen.
Wo bekomme ich für Win XP die beiden Module bzw. Repositories DBi und DBD-Oracle her und wie installier ich sie ??
Danke und guten Rutsch
Alex
Hallo,
Ich möchte mit Perl eine Verbindung zu einer Oracle Datenbank herstellen.
Wo bekomme ich für Win XP die beiden Module bzw. Repositories DBi und DBD-Oracle her und wie installier ich sie ??
guck mal hier ist der Einstieg:
http://i-netlab.de/cgi-bin/index.cgi?vi=DBI_PERL
CPAN hier:
http://theoryx5.uwinnipeg.ca/CPAN/cpan-search.html
PPM Module da:
http://www.activestate.com/PPMPackages/zips/
Viel Spass damit, Erwin
Ok,
Perlskript erstellt, Verbindung zur Datenbank aufgenommen und neue Tabelle angelegt!
ich kann jedoch immer nur einen Record einfügen!
z.B.:
my $Q = "INSERT INTO names VALUES('1', 'Meier', 'Franz')";
my $sth = $dbh->prepare($Q);
Wenn ich mehrere Records untereinander in das Skript einfüge, um die Tabelle zu füllen, wird in der Tabelle einfach nur die erste Zeile überschrieben!!!
Muss ich nach jedem neuen Zeileneintrag explizit die Zeile wechsel ??
Wenn ja, mit welchem Befehl?
Merci
Alex
Hallo,
Wenn ich mehrere Records untereinander in das Skript einfüge, um die Tabelle zu füllen, wird in der Tabelle einfach nur die erste Zeile überschrieben!!!
Hast Du auch immer brav mit Transaktionen gearbeitet?
Muss ich nach jedem neuen Zeileneintrag explizit die Zeile wechsel ??
Es gibt bei Datenbanken keine Zeilen, geschweige denn der Möglichkeit diese zu wechseln.
Ich verwende üblicherweise folgendes 'Grundgerüst' (naja mehr oder weniger *g*):
my ($field1,$field2,$field3);
my $dbh = DBI->connect('dbi:Oracle:host=somehost;sid=MYSID', 'user', '$pwd',
{ RaiseError => 1, AutoCommit => 0 })
or die 'unable to connect database: '.$DBI::errstr ;
my $sth = $dbh->prepare('INSERT INTO table (field1, field2, field3) VALUES (?, ?, ?)') or die 'unable to prepare statement'.$dbh->errstr;
my ($field1,$field2,$field3);
while(($field1,$field2,$field3) = getmyinsertdata())
{
# execute führt das mit prepare vorbereitet Statement mit den aktuellen Werten von $field1,$field2 und $field3 aus
$sth->execute($field1,$field2,$field3) or die $dbh->errstr;
}
$dbh->commit or die $dbh->errstr;
$dbh->disconnect or die $dbh->errstr;
Näheres dazu findest Du unter
http://search.cpan.org/~timb/DBI-1.39/DBI.pm
bzw.
http://search.cpan.org/~timb/DBD-Oracle-1.14/Oracle.pm.
Oder noch besser in der Perldokumentation auf Deinem Rechner.
Grüße
Klaus