Olá, nesse artigo iremos fazer uma introdução básica ao driver/módulo python-oracle.
Links úteis:
Pré-requisitos:
Após instalar a versão suportada do Python, podemos seguir com a instalação do módulo: oracledb:
python -m pip install oracledb --upgrade
ou
python3 -m pip install oracledb --upgrade
Primeiros passos:
Vamos realizar um primeiro teste de conexão ao nosso banco de dados, através do módulo e executar uma query básica.
1 - Crie um novo arquivo chamado dbahero.py, informando os detalhes de conexão:
import oracledb dbuser = 'dbahero' dbpwd = 'oracle123' dbconn = 'localhost:1521/PDBHERO' with oracledb.connect(user=dbuser, password=dbpwd, dsn=dbconn) as connection: with connection.cursor() as cursor: sql = """select 'Olá Mundo! DBAHero!' from dual""" for r in cursor.execute(sql): print(r)
2 - Agora podemos executá-lo:
python dbahero.py
A saída esperada é a seguinte:
('Olá Mundo! DBAHero!',)
Dica:
Caso deseje conectar ao banco de dados através do usuário "SYS", é necessário atribuirmos a role "SYSDBA" durante a conexão com o banco de dados.
E para isso, precisamos adicionar o parâmetro (mode=oracledb.SYSDBA) nos detalhes de conexão:
oracledb.connect(user=dbuser, password=dbpwd, dsn=dbconn, mode=oracledb.SYSDBA)
Abaixo temos um outro de exemplo de conexão sem expormos a senha do usuário, solicitando-a através do prompt durante a execução do script:
import oracledb import getpass dbuser = 'dbahero' dbconn = 'localhost:1521/PDBHERO' dbpwd = getpass.getpass(f'Informe a senha de conexão da base de dados: [{dbuser}@{dbconn}]: ') with oracledb.connect(user=dbuser, password=dbpwd, dsn=dbconn) as connection: with connection.cursor() as cursor: sql = """select 'Olá Mundo! DBAHero!' from dual""" for r in cursor.execute(sql): print(r)
A saída esperada é a seguinte:
Informe a senha de conexão da base de dados: [dbahero@localhost:1521/PDBHERO]:
('Olá Mundo! DBAHero!',)
O intuito desse primeiro post não é se aprofundar, e sim mostrar os primeiros passos de como se conectar ao banco de dados Oracle através do módulo: oracledb.
- Até a próxima.
— Autor: Leonardo Lopes 12/12/2023 04H:19