Red de conocimiento informático - Problemas con los teléfonos móviles - La conexión de Python3 a Oracle informó un error.

La conexión de Python3 a Oracle informó un error.

La conexión de Python3 a Oracle informó un error.

# -*-Codificación: utf-8 -*-

#!/usr/bin/env python

'''

Creado el 2065438+4 de agosto de 2004

@Author:188007

Clase para conectarse a la base de datos Oracle

'''

Importar sistema operativo

os.environ['NLS_LANG'] = 'Chino simplificado_China. ZHS16GBK '

Importar cx_Oracle

Sistema de importación

Clase de Oracle:

'''

Oráculo de acceso a Python Clase de herramienta asistente

'''

def __init__(self, ip, puerto, base de datos, usuario, contraseña):

self.ip = ip p>

self.port = puerto

self.db = db

self.user = usuario

self.pwd = pwd

def __GetConnect(self):

" ""Obtener información de conexión y devolver: conn.cursor()" ""

Si no es self.db:

raise(NameError, "Información de la base de datos no configurada")

dsn=cx_Oracle.makedsn(self.ip, self.port, self.db)

self . conn = CX_Oracle.connect(self.user, self.pwd, dsn)

cur = self.conn.cursor()

Si no está doblado:

rise(NameError, "No se puede conectar a la base de datos")

else:

return current

def ExecQuery(self, sql):

" " "La declaración de consulta devuelve una lista que contiene tuplas. Los elementos de la lista son filas de registros y los elementos de la tupla son los campos de cada fila de registros.

Ejemplo de llamada:

Oracle = Oracle(' 10 . 27 . 95 . 253 ', ' 1561 ', ' GFDMS ', ' GFITAPPS ', ' GFITAPPS ')

resList = oracle. OBJID, NUMCODE, AREACODE, AREANAME, PROVCODE, PROVNAME, CITYCODE, CITYNAME, TOWNCODE, TOWNNAME, comentario de GFDMS.area por número")

Para (AREANAME) en resList:

Imprimir cadena (nombre de la región) decode(' gb2312 ')

"""

Pruebe:

cur = self. __GetConnect()

Ejecución actual (sql)

resList = cur.fetchall()

#Una vez completada la consulta, se debe cerrar la conexión.

self.conn.close()

Salvo excepciones, error:

Salida del sistema (1)

Devolver lista de resultados

def ExecNonQuery(self, sql):

" " "Ejecutar una declaración sin consulta.

Ejemplo de llamada:

Oracle.

ExecNonQuery(" insertar en los valores de la zona(' x ', ' y ')")

"""

Pruebe:

cur = self.__GetConnect ()

Ejecución actual (sql)

self.conn.commit()

self.conn.close()

Excepción Excepción, error:

Salida del sistema(1)

# def main():

# # Oracle = Oracle(' 10 . 27 . 95 . 253 ', ' 1561 ', ' GFDMS ', ' GFITAPPS ', ' GFITAPPS ')

# # #Devuelve una lista que contiene tuplas cuyos elementos son filas de registros, y los elementos de la tupla son cada fila registrada. campos.

# Oracle.ExecNonQuery("insertar en los valores de la zona(' . 95 . 253 ', ' 1561 ', ' GTEST ', ' GTAPPS ', ' GTAPPS ')

# resList = oracle."SELECT OBJID, NUMCODE, AREACODE, AREANAME, PROVCODE, PROVNAME, CITYCODE, CITYNAME, TOWNCODE, TOWNNAME, OBSERVATION FROM GTEST. AREA BY NUMBER")

# para (AREANAME) en resList:

#Imprimir cadena (nombre del área) decode("utf-8")

#

# if __name__ == '__main__ ':<. /p>

# principal()