Python - Oracle instance has no attribute

01/03/2019

0

Quero que a variável retorne o valor da consulta em sql, a conexão está ok .

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

Lorena

Responder

Post mais votado

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()

Jonatan Lima

Jonatan Lima
Responder

Mais Posts

07/03/2019

Lorena

Mais detalhes do código.

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_cur



e parte de execução.

 
def ExecutaSQL(self,CmdSql):
        """ Executa comandos com ResultSet """
        self.ora_cur.execute(CmdSql)
        return self.ora_cur
Responder

07/03/2019

Lorena

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;

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()
Responder

07/03/2019

Lorena

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;

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()
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar