Ok, nothing wrong with SQLAlchemy, cx_Oracle does not support Oracle
objects (yet):
http://sourceforge.net/mailarchive/message.php?msg_name=AANLkTilkBwWsIy0yEFQpPOvQiF-k9RxvlYlKf2KyaOfw%40mail.gmail.com


On May 10, 5:45 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
> the first step here would be to create a cx_oracle -only application that 
> issues your query and gets the right result back.    then we can make sure 
> sqlalchemy is passing that along in the same way.      The error you are 
> seeing is generated by cx_oracle (SQLA just wraps the NotSupportedError).   
> What may be the issue here is that cx_oracle.OBJECT is being used at all - 
> SQLAlchemy is not aware of this type so it appears to be some guess that 
> cx_oracle is making about input or output parameters.
>
> On May 10, 2010, at 10:39 AM, Tobias wrote:
>
>
>
> > Hi!
>
> > Using cx_oracle and SQLAlchemy 0.6 I am having troubles with Oracle
> > objects (cx_Oracle.OBJECT) as function parameters. For example I have
> > a function that returns an object of type cx_Oracle.OBJECT, and now I
> > want to use that object as argument for a new function call:
>
> >>>> obj = session.scalar(func.SDO_GEOMETRY('POINT(0 0)', 4326))
> > 2010-05-10 16:23:57,337 INFO sqlalchemy.engine.base.Engine.0x...b82c
> > SELECT SDO_GEOMETRY(:SDO_GEOMETRY_2, :SDO_GEOMETRY_3) AS
> > "SDO_GEOMETRY_1" FROM DUAL
> > 2010-05-10 16:23:57,337 INFO sqlalchemy.engine.base.Engine.0x...b82c
> > {'SDO_GEOMETRY_2': 'POINT(0 0)', 'SDO_GEOMETRY_3': 4326}
> >>>> session.scalar(func.SDO_UTIL.TO_WKTGEOMETRY(obj))
> > [..]
> >  File "/../env/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/
> > sqlalchemy/engine/default.py", line 277, in do_execute
> >    cursor.execute(statement, parameters)
> > sqlalchemy.exc.NotSupportedError: (NotSupportedError)
> > Variable_TypeByValue(): unhandled data type cx_Oracle.OBJECT 'SELECT
> > SDO_UTIL.TO_WKTGEOMETRY(:TO_WKTGEOMETRY_2) AS "TO_WKTGEOMETRY_1" FROM
> > DUAL' {'TO_WKTGEOMETRY_2': <cx_Oracle.OBJECT object at 0x8e2f560>}
>
> > I tried to set a type using "bindparam", but that did not help:
>
> >>>> session.scalar(func.SDO_UTIL.TO_WKTGEOMETRY(bindparam('', wkt, 
> >>>> type_=LargeBinary)))
>
> > What can I do?
>
> > Thanks,
> > Tobias
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "sqlalchemy" group.
> > To post to this group, send email to sqlalch...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > sqlalchemy+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/sqlalchemy?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to sqlalch...@googlegroups.com.
> To unsubscribe from this group, send email to 
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group 
> athttp://groups.google.com/group/sqlalchemy?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to