lunes, 22 de septiembre de 2025

Visual Studio Code con Python usando base de datos de Oracle

 Después de tanto ataque, aunque claro haciendo notar que es por el campo de aplicación la ciencia de datos va de la mano de este lenguaje, empezamos a tratar de migrar software a Python.

En un post anterior cuando empezamos a tocar el tema de algebra lineal usando Python  mencionaba que estaba usando una máquina virtual para que -ahora lo se - poder ejecutar la consola de Power Shell ya que esta bloqueada por directivas de seguridad.

Entonces mi compañera Blanca Torres, me enseñó lo siguiente y gracias a esto ya se puede utilizar la máquina real para trabajar con Python.

Cambiar la terminal de Power Shell a Línea de Comando. 




Para poder cambiar la terminal, vamos a los ajustes de VS Code (recuadro blanco - ícono de engrane) y damos clic.



Después vamos a elegir la opción Settings.


 Ahora se elige en el menú del lado izquierdo las opciones Features - Terminal para después continuar en la opción Integrated -> Default Profile on Windows del combo se selecciona Command Prompt.

Con estas acciones ya es posible poder ejecutar programas en Python, además de poder descargar módulos o paquetes usando pip.

Conectar al motor de la base de datos de Oracle.

Si Visual Basic, Java, C# y R pueden leer tablas de Oracle, no había razón para que no lo pueda hacer Python.

Las búsquedas para investigar en la web ya mezclan la consulta tradicional y las respuestas generadas por la Inteligencia Artificial que dieron pronta respuesta a esto que se pretende hacer.

Lo primero es instalar la librería cx_Oracle (que en una consulta que acabó de realizar hablan de ya usar en cambio python-oracledb quizás sea materia del siguiente artículo).

La instalación se hace con pip install cx_Oracle lo cual no tuvo ningún problema. Entonces adaptamos un código encontrado en la web o bien generado con Inteligencia Artificial con nuestras credenciales y tablas de nuestra base de datos (que por cuestiones de seguridad no se muestran los datos reales).


Lanzando el siguiente error:

cx-oracle-connection-fails-with-dpi-1047-cannot-locate-a-64-bit-oracle-client

Por ahora será necesario investigar más acerca del llamado cliente de Oracle, nuestro Instituto maneja la versión 19c, y hasta hace poco se instalaba y se trabajaba con el cliente 12c. A raíz de que la biblioteca de clases de C# que "negocian" con la base de datos en Oracle dejaron de funcionar entre las varias teorías era actualizar la este cliente.

Como se ha mencionado en otros artículos es bueno tener el software más reciente y por esto se instaló el cliente de Oracle versión 23i.

Sin embargo al querer instalarlo no permitía elegir cualquier dirección de la computadora, requería "el directorio de Oracle".

Instalación del cliente de Oracle 23ia

Al momento de escribir este artículo este software pareciera que es una "caja negra" describo un poco el procedimiento que realice que a la vez parece que las personas que son nuestro enlace informático les dictaron la dirección general que se encarga del software y hardware que se utilizan en el Instituto.

Se proporcionó un empacado con la siguiente organización de directorios:


En mi caso desempaqué el contenido del archivo en una partición del disco duro, para después ejecutar el archivo llamado setup.exe.

En este caso el instalador solo permitió instalar en un directorio de la unidad de arranque C:/ en  Archivos de programa (Program Files) pues pareciera, sin estar seguro, que al tener una instalación previa del software VirtualBox también de la compañía Oracle toma este directorio como el predeterminado, haciendo una organización de directorios como esta:



Yo supuse que aquí se depositarían los archivos de la instalación, e inclusive se crea una serie de subdirectorios (diag con el mayor número de subdirectorios) donde en  principio creía que estaban los archivos necesarios para la conexión con las tablas, sin embargo estos directorios estaban vacías.


Aquí un ejemplo de como las carpetas están vacías (donde por el nombre de la carpeta puede una deducir que esta el controlador para  hacer la conexión).


Sin embargo el programa de instalación informa que instaló con éxito el software, inclusive modifica la variables de entorno que apuntan a donde esta el software que para este caso son los archivos que contiene el empacado original (como casi siempre la carpeta bin) que contiene los archivos ejecutables, inclusive modifica las variables de entorno para todo el equipo no solo para un  usuario.

En el tema de la configuración se abordará en otro artículo, pero después de esta instalación se procedió a probar, ahora si, el programa de ejemplo.

Entorno virtual Python.

Un entorno virtual de Python es "un mecanismo para crear <<entornos virtuales>> ligeros con sus propios directorios de paquetes, que pueden estar aislados de los directorios de paquetes del sistema. Cada entorno virtual tiene su propio ejecutable de Python (lo que permite crear entornos con diferentes versiones de Python) y puede tener su propio conjunto independiente de paquetes instalados en sus directorios, aunque comparte la biblioteca estándar con la instalación principal de Python"

Antes de crear el "entorno virtual" se crea el proyecto dentro de una carpeta y en Visual Studio Code se utiliza la opción:


Por seguridad VS Code pregunta si se confía en la creación (ubicación) de esta carpeta, después ya se puede agregar código de Python.

Por buenas prácticas y siguiendo un tutorial se creo un entorno virtual de Python, el cual se construyó mediante la instrucción:

pip -m venv datsint

En este momento se crea una estructura del directorio al interior del que previamente se definió como inicio del proyecto como se puede observar con el nombre (que es una carpeta) que se define al crear el entorno virtual.


Ejecución del código Python.

Por último se ejecuta el código donde podemos ver que se traen 5 registros sintéticos de la base de datos de Oracle, como podemos observar en la salida de este programa.


La forma de leer la base de datos es muy afín a otros lenguajes donde se hace por medio de una conexión donde se dan las credenciales (datos) necesarias para ello.

En este caso se utilizan objetos llamados cursores, donde con una cadena que contiene la instrucción SQL hace que se accede a tablas de esta base de datos en conjunto con el cursor.

Seguiremos con más ejemplos y muy seguramente con el otro objeto que conecta a esta tecnología.

Hasta el otro artículo.

Miguel Araujo.










No hay comentarios:

Publicar un comentario

Visual Studio Code con Python usando base de datos de Oracle

 Después de tanto ataque, aunque claro haciendo notar que es por el campo de aplicación la ciencia de datos va de la mano de este lenguaje,...