Python - Oracle instance has no attribute
Quero que a variável retorne o valor da consulta em sql, a conexão está ok .
Chamo esse metodo no main, porém quando executo exibe a mensagem Oracle instance has no attribute 'ora_cur'
Se eu chumbo result set = 1 envia email tudo certinho, mas quando deixo a consulta, retona o erro de instancia, poderiam me ajudar?.
def verEventos(self):
sql = ( """Select 1 from tabela x""")
resultSet = self.ExecutaSQL(sql)
if resultSet == 1:
print ('Houve eventos')
email = meu_email.Email()
email.enviarEmail()
else:
print ('NAO HOUVE eventos')
return resultSet
print ('teste')
Chamo esse metodo no main, porém quando executo exibe a mensagem Oracle instance has no attribute 'ora_cur'
Se eu chumbo result set = 1 envia email tudo certinho, mas quando deixo a consulta, retona o erro de instancia, poderiam me ajudar?.
Lorena
Curtidas 0
Melhor post
Jonatan Lima
07/03/2019
Boa tarde, de uma olhada nessa forma de conexão e execução de sql.
import cx_Oracle
uid = "user" # usuário
pwd = "senha" # senha
db = "db_conf" # string de conexão do Oracle, configurado no
# cliente Oracle, arquivo tnsnames.ora
connection = cx_Oracle.connect(uid+"/"+pwd+"@"+db) #cria a conexão
cursor = connection.cursor() # cria um cursor
cursor.execute("SELECT * from tab") # consulta sql
result = cursor.fetchone() # busca o resultado da consulta
if result == None:
print "Nenhum Resultado"
exit
else:
while result:
print result[0]
result = cursor.fetchone()
cursor.close()
connection.close()GOSTEI 1
Mais Respostas
Lorena
01/03/2019
Mais detalhes do código.
e parte de execução.
import cx_Oracle
from datetime import datetime
import meu_email
import settings
import os
class Oracle:
def __init__(self,user=None,senha=None):
self.user = user
self.senha = senha
self.alias = user
self.connection = None
self.cursor = None
self.autoConfig(alias=self.alias)
def autoConfig(self, alias=None):
None
def getDashboardAliases(self):
result = ()
for k, v in settings.CONFIG[''''''''''''''''DASHBOARD-DATABASES''''''''''''''''].iteritems():
result += (k,)
return result
def SetBase(self,pbase):
self.base = pbase
# Funcao de Conexao
def Conectar(self):
self.ora_str = "%(usr)s/%(pwd)s@%(base)s" %{''''''''''''''''usr'''''''''''''''':self.user,''''''''''''''''pwd'''''''''''''''':self.senha,''''''''''''''''base'''''''''''''''':self.base}
self.ora_cnx = cx_Oracle.connect(self.ora_str)
self.ora_cur = self.ora_cnx.cursor()
self.connection = cx_Oracle.connect(self.ora_str)
self.cursor = self.connection
cursor = self.ora_cure parte de execução.
def ExecutaSQL(self,CmdSql):
""" Executa comandos com ResultSet """
self.ora_cur.execute(CmdSql)
return self.ora_cur
GOSTEI 0
Lorena
01/03/2019
Obrigada pelo retorno, apareceu essa mensagem, alguma sugestão?.
SyntaxError: Non-ASCII character ''\\\\xc3'' in file /u02/art-it/ongoing/now/scripts/python/Monitora/testedao.py on line 6, but no encoding declared;
SyntaxError: Non-ASCII character ''\\\\xc3'' in file /u02/art-it/ongoing/now/scripts/python/Monitora/testedao.py on line 6, but no encoding declared;
Boa tarde, de uma olhada nessa forma de conexão e execução de sql.
import cx_Oracle
uid = "user" # usuário
pwd = "senha" # senha
db = "db_conf" # string de conexão do Oracle, configurado no
# cliente Oracle, arquivo tnsnames.ora
connection = cx_Oracle.connect(uid+"/"+pwd+"@"+db) #cria a conexão
cursor = connection.cursor() # cria um cursor
cursor.execute("SELECT * from tab") # consulta sql
result = cursor.fetchone() # busca o resultado da consulta
if result == None:
print "Nenhum Resultado"
exit
else:
while result:
print result[0]
result = cursor.fetchone()
cursor.close()
connection.close()GOSTEI 0
Lorena
01/03/2019
Adicionei #coding: utf-8 no começo, e retornou, muito obrigada
Obrigada pelo retorno, apareceu essa mensagem, alguma sugestão?.
SyntaxError: Non-ASCII character ''''''''\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\xc3'''''''' in file /u02/art-it/ongoing/now/scripts/python/Monitora/testedao.py on line 6, but no encoding declared;
SyntaxError: Non-ASCII character ''''''''\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\xc3'''''''' in file /u02/art-it/ongoing/now/scripts/python/Monitora/testedao.py on line 6, but no encoding declared;
Boa tarde, de uma olhada nessa forma de conexão e execução de sql.
import cx_Oracle
uid = "user" # usuário
pwd = "senha" # senha
db = "db_conf" # string de conexão do Oracle, configurado no
# cliente Oracle, arquivo tnsnames.ora
connection = cx_Oracle.connect(uid+"/"+pwd+"@"+db) #cria a conexão
cursor = connection.cursor() # cria um cursor
cursor.execute("SELECT * from tab") # consulta sql
result = cursor.fetchone() # busca o resultado da consulta
if result == None:
print "Nenhum Resultado"
exit
else:
while result:
print result[0]
result = cursor.fetchone()
cursor.close()
connection.close()GOSTEI 0