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> p>
self.port = puerto
self.db = db
self.user = usuario
self.pwd = pwd p>
def __GetConnect(self):
" ""Obtener información de conexión y devolver: conn.cursor()" ""
Si no es self.db: p>
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: p>
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()