On Wed, May 5, 2010 at 7:42 AM, dhanil anupurath
<[email protected]>wrote:
> Hi
>
> I am using sqlalchemy in my TurboGears application.
> some of my classes has columns with Pickletype dataType.
> these get converted to BLOB dataType in the database.
> I was using mySql till recently and everything was working fine.
>
> Now i am shifting to oracle. Tables are getting created properly.
> (setup-app in tg project ran successfully). But when i try to query
> a table having BLOB column , i get the following error.
> Exception in thread Thread-22:
> Traceback (most recent call last):
> File "/usr/lib/python2.4/threading.py", line 442, in __bootstrap
> self.run()
> File "/svnee/trunk/src/core/services/task_service.py", line 76, in
> check_calendar_tasks
> for cal in conn.query(Task).\
> File "/root/tg2env/lib/python2.4/site-packages/SQLAlchemy-0.5.6-
> py2.4.egg/sqlalchemy/orm/query.py", line 1361, in __iter__
> return self._execute_and_instances(context)
> File "/root/tg2env/lib/python2.4/site-packages/SQLAlchemy-0.5.6-
> py2.4.egg/sqlalchemy/orm/query.py", line 1364, in
> _execute_and_instances
> result = self.session.execute(querycontext.statement,
> params=self._params, mapper=self._mapper_zero_or_none())
> File "/root/tg2env/lib/python2.4/site-packages/SQLAlchemy-0.5.6-
> py2.4.egg/sqlalchemy/orm/session.py", line 754, in execute
> return self.__connection(engine, close_with_result=True).execute(
> File "/root/tg2env/lib/python2.4/site-packages/SQLAlchemy-0.5.6-
> py2.4.egg/sqlalchemy/engine/base.py", line 824, in execute
> return Connection.executors[c](self, object, multiparams, params)
> File "/root/tg2env/lib/python2.4/site-packages/SQLAlchemy-0.5.6-
> py2.4.egg/sqlalchemy/engine/base.py", line 874, in
> _execute_clauseelement
> return self.__execute_context(context)
> File "/root/tg2env/lib/python2.4/site-packages/SQLAlchemy-0.5.6-
> py2.4.egg/sqlalchemy/engine/base.py", line 896, in __execute_context
> self._cursor_execute(context.cursor, context.statement,
> context.parameters[0], context=context)
> File "/root/tg2env/lib/python2.4/site-packages/SQLAlchemy-0.5.6-
> py2.4.egg/sqlalchemy/engine/base.py", line 950, in _cursor_execute
> self._handle_dbapi_exception(e, statement, parameters, cursor,
> context)
> File "/root/tg2env/lib/python2.4/site-packages/SQLAlchemy-0.5.6-
> py2.4.egg/sqlalchemy/engine/base.py", line 931, in
> _handle_dbapi_exception
> raise exc.DBAPIError.instance(statement, parameters, e,
> connection_invalidated=is_disconnect)
> DatabaseError: (DatabaseError) ORA-01036: illegal variable name/number
>
>
> i did a normal select query from sqlplus:
>
> select * from tasks;
> ORA-00932: inconsistent datatypes: expected NUMBER got BLOB
>
> These are my class and table definitions:
>
> class Task(DeclarativeBase):
> task_id = Column(Integer,Sequence('id_seq'), primary_key=True)
> task_type = Column(Unicode(50), default=to_unicode('Task'))
> name = Column(Unicode(256))
> entity_id = Column(Unicode(256))
> entity_name = Column(Unicode(50))
> context = Column(PickleType)
> params = Column(PickleType)
> kw_params = Column(PickleType)
> processors = Column(ImmutablePickleType)
>
>
> _tablename_="tasks"
> TASK_ID Number
> TASK_TYPE Varchar2
> NAME Varchar2
> ENTITY_ID Varchar2
> ENTITY_NAME Varchar2
> CONTEXT Blob
> PARAMS Blob
> KW_PARAMS Blob
> PROCESSORS Blob
> USER_NAME Varchar2
> SUBMITTED_ON Date 7
> REPEATING Number
>
Any chance you could send the query that's generating the python traceback?
You should be able to see the generated queries if you send echo=True in the
create_engine arguments.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.