On Wed, 14 May 2014 07:54:58 -0700 (PDT)
"J. D." <[email protected]> wrote:

> Can someone help me with cx_Oracle and Django?! :)
> 
> I have Oracle DB 11.2 with many PLSQL-procedures in it that return cursor 
> with various output. I want to work with them without django ORM and 
> directly call them.
> 
> First of all i ran my python code without django, with the cx_Oracle driver 
> and everything works well.
> 
> conn = cx_Oracle.connect('user', 'pass')
> ora_cur = conn.cursor()
> l_cur = ora_cur.var(cx_Oracle.CURSOR)
> l_query = ora_cur.callproc('user.VIEW.procedure_with_cursor', (None, None, 
> None, None, l_cur,))  #None -  "*in*" parameters and l_cur - *out * 
> l_query[0].fetchall()
> 
> 
> but with the django and same code, i got the error:
> 
> import cx_Oracle
> from django.db import connection
> 
> ora_cur = connection.cursor()
> ora_cur.execute("SELECT * from v$version") #it works
> 
> l_cur = ora_cur.var(cx_Oracle.CURSOR)      #-> *Error: 
> *Variable_TypeByPythonType(): 
> unhandled data type
> l_query = ora_cur.callproc('user.VIEW.procedure_with_cursor', (None, None, 
> None, None, l_cur,))    
> l_query[0].fetchall()
> 
> 
> Django Version: 1.6.4  Exception Type: NotSupportedError  Exception Value: 
> 
> Variable_TypeByPythonType(): unhandled data type
> 
> 
> 
>  Python Version: 2.7.3cx_Oracle 5.1.2
> 

You're seeing that error because cursor returned from Django connection is not
actually cx_Oracle cursor but a wrapper that has similar methods. That is done 
to
overcome different binding variable types and to use %s (oracle uses :name 
format)

You should be able to get pure cx_Oracle cursor by calling:

connection._cursor()

-- 

Jani Tiainen

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/20140515070208.6b8cda16%40jns42-l.w2k.keypro.fi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to