Как увидеть реальный SQL-запрос в Python cursor.execute с помощью cx_Oracle - PullRequest
0 голосов
/ 19 июня 2019

Я использую следующий код в Python (с CX_ORACLE для базы оракулов)

con = cx_Oracle.connect(connectString)
cur = con.cursor()
sandy_pet_statement = 'select name, owner, type from cx_pets 
where owner = :owner and  anyparam= :any_param'
args = {':owner': sandy_id ,':any_param' = 'anyname'}
cur.execute(sandy_pet_statement,args )
res = cur.fetchall()

1 Ответ

0 голосов
/ 20 июня 2019

Одним из решений на стороне приложения (в отличие от трассировки БД) является создание подклассов, см. https://github.com/oracle/python-cx_Oracle/blob/master/samples/Subclassing.py

class Cursor(cx_Oracle.Cursor):

    def execute(self, statement, args):
        print("EXECUTE", statement)
        print("ARGS:")
        for argIndex, arg in enumerate(args):
            print("   ", argIndex + 1, "=>", repr(arg))
        return super(Cursor, self).execute(statement, args)
...