Conectar Oracle Apex con SQL Server [Primera parte]

Hoy vamos a tratar de establecer una conexión entre Oracle Apex y SQL Server solo por mero entretenimiento, aunque este tipo de conexiones (básicamente es de oracle a sql server) pueden servir para una gran cantidad de cosas que la imaginación del desarrollador pueda tener (generar reportes, crear aplicaciones, usos de APIS, monitoreo, etc).

Como DBA puedo de pronto estar interesado en generar este tipo de conexión quizás para hacerme a un tablero centralizado de monitoreo desde donde pueda tener en un solo formulario información puntual (que solo nos interesa a los DBA) de una o varias bases de datos al tiempo.

Para empezar, si no sabes qué es Oracle Apex te recomiendo que te des una pasadita por este enlace para que te enteres del asunto; pero a groso modo, Oracle Apex es una plataforma de desarrollo gratuita que puedes usar con cualquier versión (desde la 9i … creo) y distribución de bases de datos Oracle (XE, SE, EE).

Es bueno que la ensayen; les aseguro que les va gustar bastante; es relativamente muy fácil de manejar para usuarios que tienen un nivel básico de SQL y PL/SQL y super, super fácil para aquellos que además de esto conocen o tienen alguna experiencia con javascript (aunque no es determinante para usarla).

No más carreta; a lo que vinimos…

El escenario:

Tengo un Oracle XE 18c con el Oracle Apex 20 instalado sobre una CentOS 7; para instalarlo me base en una guía de Oracle que les comparto en este enlace.

Tengo en otro server un windows con SQL Server 2008 SE r2 con una base de datos de prueba que nos servirá para validar las consultas.

Con las bases de datos ya configuradas (incluyendo el Apex) y funcionando debemos entonces buscarnos el ODBC (Open DataBase Connectivity) y las tools que nos servirá de intermediario entre Oracle y SQL Server y que podemos descargar de esta web.

Yo me voy a bajar este que el que coincide con el sistema operativo donde está el Oracle:


Pero si Ud. requiere otro para otra distro diferente también puede haciendo clic aquí y eligiendo la adecuada:

Ya con el software descargado todo es cuestión de cargarlo en nuestro Linux o si no quieres dar toda esa vuelta pues te lo bajas directamente a tu consola usando wget:

Instalamos el odbc teniendo en cuenta que éste instala sus librerías por default en la ruta /opt de linux así que ese directorio debe existir:

Escribimos la palabra YES y presionamos la tecla Enter para aceptar la licencia

Hacemos lo mismo con las tools

Validamos que se haya creado el directorio microsoft en el /opt de nuestro Linux

Ejecutamos las siguientes instrucciones:

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

y luego verificamos el nombre de la librería para cargarla (o verificar que quedó registrada) en el odbcinst.ini. Accedemos entonces a la siguiente ruta: /opt/microsoft/msodbcsql17/lib64 y listamos los archivos

El archivo que se visualiza en color verde debe ser el mismo que nos debe aparecer en el odbcinst.ini; algo como esto:

En ese archivo quedan registrados nuestros controladores odbc, en mi caso tengo el de PostgreSQL con el que más adelante haremos también un artículo; el MySQL y ahora el SQL Server.

Vamos a cambiarle nombre a ese identifiacador por algo más corto, algo como [ODBC_Server]:

Si estamos usando el firewall, debemos adicionar el puerto por el que escucha el SQL Server; en mi caso como es de pruebas está en el puerto por default (nada recomendable…)

Es hora de configurar una conexión y probar… Vamos entonces a editar nuestros archivo odbc.ini usando el comando vi o nano:

nano /etc/odbc.ini

E ingresamos algo similar a esto:

Guardamos….

En el entorno de windows esto es lo que tengo:

Y vamos a probar que desde el Linux nos devuelva esos mismo registros. Digitamos entonces algo como esto:

isql -v SQL_Server usrtest usrtest

Nos debe aparecer algo como esto:

Lo que nos indica que por lo menos, ya tenemos conexión…

Ahora generamos la consulta para obtener los datos del SQL Server, de la tabla tbl_prueba de la base de datos DB_TEST

Eureka!!

Ya tenemos nuestro CentOS conectando y recuperando información de nuestro SQL Server ubicado en un servidor Windows.

En el próximo capítulo vamos a ver cómo aprovechar esto para configurar el hs de Oracel y desde APEX generar reportes y otras cositas sobre la base de datos SQL Server.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *