Utiliser Perl DBI avec Oracle

Avec Oracle10g , Perl vient préconfiguré. Il est d’ailleurs utilisé par les agents Enterprise Manager, en mode « Database control » ou « Grid Control ». Voici un exemple simple de fichier Perl qui accède au schéma hr d’une base de données dont l’alias est « blue » :

#!/bin/perl
use strict;
use DBI;

my $dbh = DBI->connect(‘DBI:Oracle:blue’, ‘hr’, ‘hr’,)
or die « Impossible de se connecter à la base de données:  » . DBI->errstr;

my $sth = $dbh->prepare(‘select first_name, last_name from employees’)
or die « Impossible de créer le statement:  » . $dbh->errstr;

my @data;

$sth->execute()
or die « Impossible d’exécuter la requête:  » . $sth->errstr;

while (@data = $sth->fetchrow_array()) {
my $fname = $data[0];
my $lname = $data[1];
print « tnom: $fname $lname n »;
}

$sth->finish;
$dbh->disconnect;

Quelques remarques

  • Cet exemple a été testé sur une base de données 10.2.0.2 sous Linux
  • Pour les besoins de l’exemple, les variables qui suivent ont été configurées :
    • ORACLE_HOME=/u01/oracle/product/10.2.0/db_1
    • PATH=$ORACLE_HOME/bin:$ORACLE_HOME/perl/bin:$PATH
    • PERL5LIB=$ORACLE_HOME/perl/lib/5.8.3:$ORACLE_HOME/perl/lib/site_perl/5.8.3
    • LD_LIBRARY_PATH=$ORACLE_HOME/lib
  • Pour que le programme « perl » soit exécuté directement avec le script, il faut créer un lien symbolique de /bin/perl vers $ORACLE_HOME/perl/bin/perl (ça ne fonctionnera que sur Unix ou Linux)