Python Connect a Oracle Database

Python Connect a Oracle Database
Python es uno de los lenguajes de programación más populares e influyentes de la era moderna. Se utiliza para construir desde pequeños scripts de chatarra web hasta aplicaciones empresariales masivas como YouTube, Spotify, etc.

Oracle Database se considera una de las bases de datos relacionales más populares. Esto se debe a que viene lleno de características para aplicaciones pequeñas a masivas.

Por lo tanto, no es sorprendente que encuentre un escenario en el que necesite conectar una aplicación de Python a una base de datos Oracle.

A través de esta publicación, comprenderá los conceptos básicos de conectar una aplicación Python a una base de datos Oracle utilizando la interfaz CX_Oracle.

¿Qué es cx_oracle??

CX_Oracle es un módulo Python gratuito y de código abierto que le permite conectar una aplicación Python a una base de datos Oracle. El módulo se ajusta a las especificaciones de la API de la base de datos de Python, por lo que es una opción popular para ejecutar comandos PL/SQL usando Python.

Puede verificar el código fuente del módulo en el recurso definido a continuación:

https: // github.com/oracle/python-cx_oracle

Requisitos

Para seguir este tutorial, necesitará acceso a lo siguiente:

  1. Una instalación de la base de datos de Oracle que se ejecuta en su máquina.
  2. El último intérprete de Python instalado en su máquina.
  3. Suficientes permisos de base de datos en el servidor.

También puede usar una instalación remota de la base de datos Oracle. Tenga en cuenta que puede necesitar las credenciales al servidor de destino.

Paso 1 - Configuración de un usuario de la base de datos

El primer paso es configurar un nuevo usuario de base de datos para su aplicación Python. Puede omitir este paso si ya tiene un usuario de base de datos existente que desea usar.

Aunque este paso no es un requisito, es bueno limitar la aplicación a una base de datos específica y permiso en caso de compromiso de seguridad.

Comience al iniciar el comando SQL Plus como se muestra:

$ sqlplus

A continuación, ingrese el nombre de usuario para el usuario privilegiado al que desea conectarse. Esto le solicitará una contraseña que definió durante la instalación de su base de datos.

Ingrese el nombre de usuario: sys como sysdba

Introducir la contraseña: **********

Una vez iniciado sesión, debe dejarlo caer al shell PL/SQL como:

Conectado a:

Oracle Database 19C Enterprise Edition Release 19.0.0.0.0 - Producción
Versión 19.3.0.0.0
SQL>

También puede ejecutar el comando anterior para iniciar sesión directamente a PDB:

sqlplus sys/contraseña@pdborcl como sysdba

Reemplace el nombre de usuario y la contraseña con sus credenciales de destino.

Una vez que se registre, ejecute el comando a continuación para crear un usuario.

SQL> Crear usuario LinuxHint;

Alterar el usuario creado y establecer las propiedades de destino, como espacio de tabla y límite de cuota.

SQL> alterar el usuario Linuxhint
Usuarios de espacio de tabla predeterminado
Temperatura temporal
Cuota ilimitada en los usuarios;

La consulta anterior establece el espacio de tabla predeterminado, el espacio de tabla temporal y el límite de cuota del usuario creado, respectivamente.

Finalmente, otorgue los permisos necesarios al usuario creado como se muestra:

SQL> Tabla de creación de subvención,
Crear vista,
Crear secuencia,
Crear disparador,
Crear tipo,
Crear una vista materializada,
Crear sesión,
Crear procedimiento
A Linuxhint;
Grant tuvo éxito.

La consulta anterior otorga al usuario permiso para crear varios objetos de base de datos, como tablas, vistas, procedimientos, desencadenantes, vistas materializadas, secuencias, etc.

Finalmente, establezca una contraseña al usuario de destino como:

SQL> alterar el usuario Linuxhint identificado por contraseña;

Luego puede salir de la sesión SQL Plus y proceder a la siguiente sección.

Paso 2 - Instalación del módulo CX_Oracle Python

El siguiente paso es configurar e instalar el módulo CX_Oracle en Python. Este paso requiere que tenga instalado Python y Pip en su máquina.

Consulte nuestros tutoriales sobre el tema para obtener más información.

Ejecute el comando pip:

python3 -m pip install cx_oracle -upgrade

Una vez configurado, podemos continuar con la configuración de nuestra aplicación.

Paso 3 - Configuración de la aplicación

Comience creando el directorio principal para almacenar su código de aplicación:

$ mkdir orclpy

Navegue en el directorio creado y defina un nuevo DB_Config.archivo py. Esto se utilizará para almacenar la configuración de la base de datos.

$ cd orclpy && touch db_config.py

Editar el db_config.Archivo PY con su editor de texto favorito y agregue la información de configuración de la base de datos como se muestra en la muestra a continuación:

$ vim db_config.py

Información de configuración:

Usuario = 'Linuxhint'
contraseña = 'contraseña'
dsn = 'localhost/orcl'
puerto = 1512
codificación = 'UTF-8'

El archivo de configuración contiene información para iniciar sesión en el servidor. El usuario y las contraseñas se refieren al usuario que creamos en el paso 1.

El DSN define el nombre de la fuente de datos, que incluye el nombre de host del servidor y el nombre de la base de datos conectable. En este caso, PDBorCl1.

Paso 4: conectarse a la base de datos

Una vez que tenga la configuración de la base de datos establecida, podemos conectar la aplicación al servidor.

Comience creando un archivo para almacenar su código de aplicación:

$ touch main.py

Edite el archivo y agregue el código:

importar cx_oracle
importar db_config
intentar:
Conn = CX_Oracle.CONECTAR(
db_config.USUARIO,
db_config.contraseña,
db_config.dsn,
codificación = db_config.codificación)
imprimir ("Versión de la base de datos", Conn.versión)
excepto cx_oracle.Error como E:
Imprimir (E)
finalmente:
Si Conn:
conn.CERCA()

Comenzamos importando el módulo CX_Oracle y el archivo db_config en el código anterior.

A continuación, envolvemos el bloque de conexión dentro de un bloque de captura de try. El objeto de conexión se almacena en 'Conn' usando el CX_Oracle.Función de conectar.

Si la conexión es exitosa, imprimimos la versión de la base de datos utilizando la conexión.versión. Si no, captamos el error e imprimimos.

Finalmente, cerramos la conexión usando la conexión.Función Cerrar ().

Podemos ejecutar el código como:

$ python3 main.py

Esto debería devolver la salida como:

$ Python Main.py
Versión de la base de datos: 19.3.0.0.0

Conclusión

Esta es una discusión sobre el proceso de conectar su aplicación Python a su base de datos Oracle utilizando el módulo CX_Oracle.