Feladat: perl programmal oracle adatbázis matatása.
Első lépés:
Ellenőrzés hogy van perl és van oracle modul
$ perl -e 'use DBI; print $DBI::VERSION,"\n";'
1.50
$ perl -e 'use DBD::Oracle; print $DBD::Oracle::VERSION,"\n";
1.17
Ez sikerült is.
Csináltam egy selectet is
#!/opt/common/5.3/perl/bin/perl
use strict;
use DBI;
my $dbh = DBI->connect( 'dbi:Oracle:DEV_DB',
'ora_user',
'jelszo',
{ RaiseError => 1, AutoCommit => 0 }
) || die "Database connection not made: $DBI::errstr";
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
$dbh->{ora_check_sql} = 0;
$dbh->{RowCacheSize} = 16;
my $sth = $dbh->prepare("SELECT ID, FULL_NAME FROM GUI_USERS");
$sth->execute();
my ($id, $name); # Declare columns
$sth->bind_columns(undef, \$id, \$name);
print "USERS:\n\n"; # Fetch rows from DB
while( $sth->fetch() ) {
print "$id:\t $name\n";
}
$sth->finish(); # Close cursor
$dbh->disconnect;
print "OK\n";
Ezt sikerült lefuttatni.
Amit nem értek, hogy mi az a undef paraméter a bind_columns() függényben.
Aztán egy update utasítás is sikerült kiadni
#!/opt/common/5.3/perl/bin/perl
use strict;
use DBI;
my $dbh = DBI->connect( 'dbi:Oracle:DEV_DB',
'ora_user',
'jelszo',
{ RaiseError => 1, AutoCommit => 0 }
) || die "Database connection not made: $DBI::errstr";
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
$dbh->{ora_check_sql} = 0;
$dbh->do("BEGIN update GUI_USERS set EMAIL = 'kiss.m".'@'."il.hu' where ID = 'kissm'; END;");
$dbh->commit;
$dbh->disconnect;
print"OK\n";
Ez is sikerült és fontos volt a commit() meghívása mert kikapcsoltam az AutoCommitot
Elvileg ezzel már el lehet indulni.
Első lépés:
Ellenőrzés hogy van perl és van oracle modul
$ perl -e 'use DBI; print $DBI::VERSION,"\n";'
1.50
$ perl -e 'use DBD::Oracle; print $DBD::Oracle::VERSION,"\n";
1.17
Ez sikerült is.
Csináltam egy selectet is
#!/opt/common/5.3/perl/bin/perl
use strict;
use DBI;
my $dbh = DBI->connect( 'dbi:Oracle:DEV_DB',
'ora_user',
'jelszo',
{ RaiseError => 1, AutoCommit => 0 }
) || die "Database connection not made: $DBI::errstr";
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
$dbh->{ora_check_sql} = 0;
$dbh->{RowCacheSize} = 16;
my $sth = $dbh->prepare("SELECT ID, FULL_NAME FROM GUI_USERS");
$sth->execute();
my ($id, $name); # Declare columns
$sth->bind_columns(undef, \$id, \$name);
print "USERS:\n\n"; # Fetch rows from DB
while( $sth->fetch() ) {
print "$id:\t $name\n";
}
$sth->finish(); # Close cursor
$dbh->disconnect;
print "OK\n";
Ezt sikerült lefuttatni.
Amit nem értek, hogy mi az a undef paraméter a bind_columns() függényben.
Aztán egy update utasítás is sikerült kiadni
#!/opt/common/5.3/perl/bin/perl
use strict;
use DBI;
my $dbh = DBI->connect( 'dbi:Oracle:DEV_DB',
'ora_user',
'jelszo',
{ RaiseError => 1, AutoCommit => 0 }
) || die "Database connection not made: $DBI::errstr";
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
$dbh->{ora_check_sql} = 0;
$dbh->do("BEGIN update GUI_USERS set EMAIL = 'kiss.m".'@'."il.hu' where ID = 'kissm'; END;");
$dbh->commit;
$dbh->disconnect;
print"OK\n";
Ez is sikerült és fontos volt a commit() meghívása mert kikapcsoltam az AutoCommitot
Elvileg ezzel már el lehet indulni.
Nincsenek megjegyzések:
Megjegyzés küldése