Python Connect al database Oracle

Python Connect al database Oracle
Python è uno dei linguaggi di programmazione più popolari e influenti dell'era moderna. Viene utilizzato per costruire da piccoli script di rottami Web a enormi applicazioni aziendali come YouTube, Spotify, ecc.

Il database Oracle è considerato uno dei database relazionali più popolari. Questo perché viene ricco di funzionalità per applicazioni da piccole a enormi.

Pertanto, non sorprende che incontrerai uno scenario in cui è necessario collegare un'applicazione Python a un database Oracle.

Attraverso questo post, capirai le basi della connessione di un'applicazione Python a un database Oracle utilizzando l'interfaccia CX_ORACLE.

Cos'è cx_oracle?

Cx_oracle è un modulo Python gratuito e open source che consente di collegare un'applicazione Python a un database Oracle. Il modulo è conforme alle specifiche API del database Python, rendendolo una scelta popolare per l'esecuzione di comandi PL/SQL usando Python.

È possibile controllare il codice sorgente per il modulo nella risorsa definita di seguito:

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

Requisiti

Per seguire questo tutorial, avrai bisogno di accedere a quanto segue:

  1. Un'installazione del database Oracle in esecuzione sulla macchina.
  2. L'ultimo interprete di Python installato sulla macchina.
  3. Autorizzazioni di database sufficienti sul server.

È inoltre possibile utilizzare un'installazione di database Oracle remoto. Tieni presente che potresti aver bisogno delle credenziali per il server di destinazione.

Passaggio 1 - Impostazione di un utente di database

Il primo passo è la configurazione di un nuovo utente di database per la tua applicazione Python. Puoi saltare questo passaggio se hai già un utente di database esistente che si desidera utilizzare.

Sebbene questo passaggio non sia un requisito, è bene limitare l'applicazione a un database e autorizzazione specifici in caso di compromesso di sicurezza.

Inizia lanciando il comando SQL Plus come mostrato:

$ sqlplus

Successivamente, inserisci il nome utente per l'utente privilegiato a cui desideri connetterti. Questo ti chiederà una password definita durante l'installazione del database.

Immettere il nome utente: sys come sysdba

Inserire la password: **********

Una volta effettuato l'accesso, dovresti essere lasciato cadere sulla shell PL/SQL come:

Collegato a:

Oracle Database 19C Enterprise Edition Release 19.0.0.0.0 - Produzione
Versione 19.3.0.0.0
SQL>

Puoi anche eseguire il comando sopra per accedere direttamente a PDB:

sqlplus sys/password@pdborcl come sysdba

Sostituisci il nome utente e la password con le credenziali target.

Una volta effettuato l'accesso, eseguire il comando di seguito per creare un utente.

SQL> Crea LinuxHint utente;

Modificare l'utente creato e impostare le proprietà di destinazione come tablespace e limite di quota.

SQL> ALTER USER LINUXHINT
Utenti di tablespace predefiniti
Temp. Tablespace temporanea
quota illimitata sugli utenti;

La query sopra imposta il tablespace predefinito, il tablespace temporaneo e il limite della quota dell'utente creato, rispettivamente.

Infine, concedi le autorizzazioni necessarie all'utente creato come mostrato:

SQL> Grant Crea Table,
Crea vista,
Creare sequenza,
Crea trigger,
Crea tipo,
Crea vista materializzata,
Crea sessione,
Crea procedura
A Linuxhint;
Grant è riuscito.

La query sopra garantisce l'autorizzazione dell'utente per creare vari oggetti di database come tabelle, viste, procedure, trigger, viste materializzate, sequenze, ecc.

Infine, imposta una password sull'utente di destinazione come:

SQL> Alter User Linuxhint identificato dalla password;

È quindi possibile uscire dalla sessione SQL Plus e procedere alla sezione successiva.

Passaggio 2 - Installazione del modulo CX_ORACLE PYTHON

Il prossimo passo è impostare e installare il modulo CX_oracle in Python. Questo passaggio richiede di installare Python e Pip sulla macchina.

Controlla i nostri tutorial sull'argomento per saperne di più.

Esegui il comando PIP:

python3 -m pip installa cx_oracle -upgrade

Una volta impostata, possiamo procedere con la nostra configurazione dell'applicazione.

Passaggio 3 - Impostazione dell'applicazione

Inizia creando la directory principale per archiviare il codice dell'applicazione:

$ mkdir orclpy

Passare nella directory creata e definire un nuovo DB_Config.Py File. Questo verrà utilizzato per archiviare la configurazione del database.

$ cd orclpy && touch db_config.Py

Modifica il db_config.File PY con il tuo editor di testo preferito e aggiungi le informazioni di configurazione del database come mostrato nell'esempio seguente:

$ vim db_config.Py

Informazioni sulla configurazione:

User = 'LinuxHint'
password = 'password'
dsn = 'localhost/orcl'
porta = 1512
ECCODING = 'UTF-8'

Il file di configurazione contiene informazioni per accedere al server. L'utente e le password si riferiscono all'utente che abbiamo creato nel passaggio 1.

Il DSN definisce il nome dell'origine dati, che include il nome host server e il nome del database pluggable. In questo caso, pdborcl1.

Passaggio 4 - Connettiti al database

Una volta che hai la configurazione del set di database, possiamo connettere l'applicazione al server.

Inizia creando un file per archiviare il codice dell'applicazione:

$ touch main.Py

Modifica il file e aggiungi il codice:

Importa cx_oracle
import db_config
Tentativo:
Conn = cx_oracle.COLLEGARE(
db_config.UTENTE,
db_config.parola d'ordine,
db_config.dsn,
codifica = db_config.codifica)
Stampa ("Versione del database:", Conn.versione)
Tranne cx_oracle.Errore come E:
stampa (e)
Finalmente:
Se Conn:
Conn.VICINO()

Iniziamo importando il modulo CX_oracle e il file db_config nel codice sopra.

Successivamente, avvolgiamo il blocco di connessione all'interno di un blocco di cattura. L'oggetto di connessione viene archiviato in "Conn" usando CX_ORACLE.Funzione di connessione.

Se la connessione ha esito positivo, stampiamo la versione del database utilizzando Conn.versione. In caso contrario, prendiamo l'errore e lo stampiamo.

Infine, chiudiamo la connessione usando il Conn.Funzione Close ().

Possiamo eseguire il codice come:

$ Python3 Main.Py

Questo dovrebbe restituire l'output come:

$ Python Main.Py
Versione del database: 19.3.0.0.0

Conclusione

Questa è una discussione sul processo di collegamento dell'applicazione Python al tuo database Oracle utilizzando il modulo CX_ORACLE.