DBI-LINK

From: <juanudo(at)galeon(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: DBI-LINK
Date: 2005-11-30 19:52:46
Message-ID: web-743842@hispavista.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas días lista, siguiendo los consejos de
Alvaro estoy intentando el "select" a través de
postgresql a otro RDBMS de la sigueinte forma:

prueba_posgresql=# SELECT t.nombre,t.cedula FROM
dbi_link.remote_select
'dbi:Oracle:host=IP;sid=OEMREP;port=1521','prueba','prueba',NULL,
'select nombre,cedula from usuarios') t(nombre
varchar,cedula varchar);

A lo cual el postgresql responde de la siguiente
forma:
ERROR: error from Perl function: Could not
connect to database data source:
dbi:Oracle:host=IP;sid=OEMREP;port=1521
user: prueba
password: prueba
attributes: (UNKNOWN OCI STATUS 1804)
OCIInitialize. Check ORACLE_HOME and NLS
settings etc. at (eval 1) line 111.

Entiendo que el error es que la función de Perl
no logra conectarse a la BD, y es aquí donde se
presenta el problema. Intento la conexión
directa vía Perl al otro RDBMS de la siguiente
forma:

use strict;
use DBI;
use DBD::Oracle qw(:ora_types);

my $dbh = DBI->connect(
'dbi:Oracle:host=IP;sid=OEMREP;port=1521','prueba','prueba',
{RaiseError=> 1,AutoCommit => 0}) or die
"Database connection not made:". $DBI::errstr;

my $sql = qq{select nombre,cedula from
usuarios};

my $sth = $dbh->prepare( $sql ) or die "Couldn't
prepare statement: " . $dbh->errstr;
$sth->execute() or die "Couldn't execute
statement: " . $sth->errstr;

my( $nombre,$cedula);
$sth->bind_columns(\$nombre,\$cedula);
while( $sth->fetch() ) {
print "$nombre,$cedula\n";
}
$sth->finish();
$dbh->disconnect();

...la conexion y el "select" se realiza sin
ningun problema.

Tengo entendido que el error "(UNKNOWN OCI
STATUS 1804) OCIInitialize. Check ORACLE_HOME
and NLS settings etc. at (eval 1) line 111." se
da por que el usuario que se esta conectado al
ORACLE no existe o las variables ORACLE_HOME y
NLS no estan seteadas pero debo aclarar que esto
no es asi, el usuario existe y se conecta
normalmente usando la
funcion de Perl directamente sobre el ORACLE.

Entiendo que cuando hago la conexion
directamente con DBI a Oracle es ese mismo
proceso el que necesita las
variables ORACLE_HOME y demas, pero si lo hago
con BDI-Link, quien necesita tener las variables
definidas es el "backend" de Postgres, el cual a
su vez las hereda desde el Postmaster. Para
estar seguro de que el "backend" tenga las
variables correctas he bajado el Postgres y
seteado todas las variables necesarias
manualmente, pero el problema sigue sin
resolverse.

Atentamente, Juan Mosqueda.
Constructor de Exitos.
Te alcanzan tus ingresos? te invito a
desarrollar
-----------------------------------------------------------------------------------
Di adios a los virus y a los pop-ups
http://barra.hispavista.com/hispavista/cargar.html

-----------------------------------------------------------------------------------
¿Conoces eBay, el mayor centro de compra y venta en internet?
M?viles, port?les, pda´s, cd´s, c?ras digitales, videocamaras...
¡Compra ahora a los mejores precios! http://ebay.hispavista.com/
-----------------------------------------------------------------------------------
¿Compras por internet?
http://compras.hispavista.es/

-----------------------------------------------------------------------------------
- Correo seguro con tecnolog?Panda Software

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Roberto Andrade Fonseca 2005-11-30 22:28:47 Curso de PL/pgSQL en la Ciudad de México
Previous Message Jaime Casanova 2005-11-30 19:36:36 Re: Otra consulta