Pregunta

Esto podría ser cuestión muy básica. Me gustaría validar una variable es el tipo de cx_Oracle.OracleCursor, por lo que he intentado un par de ensayos, pero todos fallaron:

import cx_Oracle

def execute_sql(cursor):
    """Execute a SQL using cursor(cx_Oracle.OracleCursor)."""
    if not cursor:
        logging.error('cursor is null.')
        return None  # TODO: raise some exception.
    # elif isinstance(cursor, OracleCursor): # failed
    # elif isinstance(cursor, cx_Oracle.OracleCursor): # failed
        logging.error('cursor is not OracleCursor.')
        return None  # TODO: raise some exception.
# ...

¿Cómo puedo validar el tipo de cursor?

Y la pregunta adicional es lo que es adecuado para el error tipo no válido excepción / error?

Gracias por cualquier ayuda!

¿Fue útil?

Solución

Se puede comprobar el tipo de variable usando type(variable):

if str(type(cursor)) == "<type 'OracleCursor'>":
       ...

PS Sé que se recomienda que isinstance().

Otros consejos

Esto funciona para mí:

if isinstance(cursor, cx_Oracle.Cursor):
    ...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top