#OracleACE
#31/05/2026
A veces es necesario conectar Oracle con una BD NonOracle, porque los sistemas de nuestros clientes tienen o están desplegados en toda una variedad de motores de BD dado que los proveedores de aplicación a veces no manejan la excelencia de Motor de BD Como es Oracle DB.
En este articulo, vamos a configurar la conexión con una BD Non Oracle
Lo primero que en la VM o maquina asignada debemos instalar los paquetes para ODBC y driver para conectarse la BD Non Oracle en este caso usaremos Postgres para nuestro ejemplo:
yum install postgresql
yum search libnsl
yum install libnsl.x86_64
yum install unixODBC*
yum install postgresql-odbc.x86_64
Luego debemos configurar el archivo /etc/odbc.ini con la informacion del destino donde la BD NonOracle se ejecuta, debemos asegurarnos de tener permisos en la red, acceso al puerto, credenciales validas etc.
[pg]
Description = pg
Driver =/usr/lib64/psqlodbc.so
ServerName = HOSTREMOTO
Username = USUARIO
Password = password
Port = puerto
Database = DB
Trace = no
Debemos haber instalado el software de Oracle Database gateway for ODBC para la conectividad genérica.
lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 – Production on 31-MAY-2026 23:31:06
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=10.0.0.96)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 – Production
Start Date 28-MAY-2026 15:00:03
Uptime 3 days 8 hr. 31 min. 3 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/19.0.0/tg/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/linux8gtw/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=IPPRIVADA)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary…
Service “pg” has 1 instance(s).
Instance “pg”, status UNKNOWN, has 1 handler(s) for this service…
The command completed successfully
Los archivos de configuracion del gateway de Oracle apuntando al ODBC:
[oracle@host admin]$ pwd
/opt/oracle/product/19.0.0/tg/hs/admin
[oracle@host admin]$ cat initpg.ora
HS_FDS_CONNECT_INFO = pg
HS_FDS_TRACE_LEVEL = OFF
HS_FDS_SHAREABLE_NAME = /usr/lib64/psqlodbc.so
set ODBCINI=/etc/odbc.ini
HS_NLS_NCHAR = UCS2
HS_KEEP_REMOTE_COLUMN_SIZE = ALL
HS_LANGUAGE=american_america.utf8
El listener genérico que permite la comunicación heterogenea:
[oracle@host admin]$ cat listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = pg)
(ORACLE_HOME = /opt/oracle/product/19.0.0/tg)
(ENVS=”LD_LIBRARY_PATH=/usr/local/lib:/usr/lib64:/opt/oracle/product/19.0.0/tg”)
(PROGRAM = dg4odbc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = host)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
DIAG_ADR_ENABLED=off
Luego ya en la BD Oracle que deseamos o necesitamos consuma la conexión remota:
Podemos consultar por ejemplo las tablas del catalogo del usuario que se conecto:

Usando un dblink de forma natural, recordemos que el dblink debe tener esta opcion por ser heterogenea:


Espero les sea de utilidad.
saludos.
