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;
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
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
Publicar un comentario