Conectarse a una base de datos de Oracle usando perl, DBD::Oracle

Usando este URL para modelo:

http://usestrict.net/2009/07/12/perl-installing-dbdoracle-on-ubuntu-904-and-oracle-instant-client/

# perl -MCPAN -e shell

m DBI
install DBI

m DBD::Oracle
get DBD::Oracle
q

# export ORACLE_HOME=/usr/lib/oracle/10.1/client
# export PATH=$PATH:$ORACLE_HOME/bin
# export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME=/usr/lib/oracle/10.1/client

Se descargan los 3 archivos siguientes, para 64bits según mi plataforma:
http://download.oracle.com/otn/linux/instantclient/instantclient-basic-linuxAMD64-10.1.0.5.0-20060519.zip
http://download.oracle.com/otn/linux/instantclient/instantclient-sqlplus-linuxAMD64-10.1.0.5.0-20060519.zip
http://download.oracle.com/otn/linux/instantclient/instantclient-sdk-linuxAMD64-10.1.0.5.0-20060519.zip

El resultado de la descompresión lo coloqué en /usr/lib/oracle/10.1/client/


# cd /root/.cpan/build/DBD-Oracle-1.26-eT6wOZ
# perl Makefile.PL -V 10.1.0.5

#Para crear el archivo de conexiones TNSNAMES.ORA
# mkdir -p $ORACLE_HOME/network/admin; touch $ORACLE_HOME/network/admin/tnsnames.ora
# export ORACLE_USERID="sifi/password@APOLONIA"
# make test
# make install

Conteniendo algo como esto:


# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

APOLO =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.19)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dbname)
    )
  )


Luego para escribir en perl la conexión he hecho esto:

/jaimeco/ora.pl


#!/usr/bin/perl
my $ORACLE_HOME = "/usr/lib/oracle/10.1/client";
my $ORACLE_SID="DBNAME";
$ENV{ORACLE_HOME}=$ORACLE_HOME;
$ENV{ORACLE_SID}=$ORACLE_SID;
$ENV{PATH}="$ORACLE_HOME/bin";
# $ENV{LD_LIBRARY_PATH}="$ORACLE_HOME/lib";

use DBI;
$host = "10.0.1.19";
$sid = "dbdb";
$user = "useruser";
$password ="pass4727";

        $dbh = DBI->connect('dbi:Oracle:host=$host;sid=$sid;port=1521', $user, $password)|| die "Database connection not made: $DBI::errstr";

exit 0;

Desde el usuario se pueden agregar las variables de ambiente como sigue en /home/user/.profile


export ORACLE_HOME=/usr/lib/oracle/10.1/client
export ORACLE_SID=dbsiif
export PATH=$ORACLE_HOME:$ORACLE_HOME/bin:$ORACLE_HOME/network/admin:$PATH:.
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME
export TNS_ADMIN=$ORACLE_HOME/network/admin


$ sqlplus usuario/password@HostnameOrIP/ServiceName


Comentarios

Entradas populares