Connected to:
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
With the Partitioning option
JServer Release 8.1.7.4.0 - Production


Session altered.

SQL> SELECT CAST('test unicode returns' AS VARCHAR(60)) AS anon_1 FROM
DUAL
  2  ;

ANON_1
------------------------------------------------------------
test unicode returns

SQL>




On May 17, 4:47 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
> So there's a call upon first connect which is along the lines of:
>
> SELECT CAST('test unicode returns' AS VARCHAR(60 CHAR)) AS anon_1 FROM DUAL
>
> when you're on oracle 8, it should be checking server version, and coming out 
> as:
>
> SELECT CAST('test unicode returns' AS VARCHAR(60)) AS anon_1 FROM DUAL
>
> so step one is make sure the second statement works on Oracle 8.   step two, 
> we'd have to make sure the server version detection is working.   you can 
> force this particular case like:
>
> engine = create_engine('oracle://...')
> engine.dialect.supports_char_length = False
>
> besides that, I'd like to see:
>
> engine = create_engine('oracle://...')
> try:
>     engine.connect()
> except:
>     # because we know its not working
>     pass
> print engine.dialect.server_version_info
>
> this particular interaction doesn't go through regular SQLAlchemy logging.  
> If you really needed to see it occur you'd have to watch your oracle query 
> logs.
>
> On May 17, 2010, at 3:37 PM, Kent wrote:
>
>
>
> > After migrating to 0.6, we've got an apparently well running
> > application for postgres and Oracle 9 or above.  However, as soon as
> > we connect to an Oracle 8 database, *everything* we attempt ends with
> > this: oracle error: "ORA-00907: missing right parenthesis"
>
> > Here is an example trying to run a session query.......:
>
> >>>> DBSession.query(SystemParameter).all()
> > 12:35:01,294 INFO  [sqlalchemy.engine.base.Engine.0x...5650] SELECT
> > USER FROM DUAL
> > 12:35:01,294 INFO  [sqlalchemy.engine.base.Engine.0x...5650] {}
> > Traceback (most recent call last):
> >  File "<console>", line 1, in <module>
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py", line
> > 1343, in all
> >    return list(self)
> >  File "/home/rarch/trunk/src/appserver/pylotengine/__init__.py", line
> > 73, in __iter__
> >    return Query.__iter__(self)
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py", line
> > 1451, in __iter__
> >    return self._execute_and_instances(context)
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py", line
> > 1456, in _execute_and_instances
> >    mapper=self._mapper_zero_or_none())
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py",
> > line 736, in execute
> >    return self._connection_for_bind(engine,
> > close_with_result=True).execute(
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py",
> > line 701, in _connection_for_bind
> >    return self.transaction._connection_for_bind(engine)
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py",
> > line 319, in _connection_for_bind
> >    conn = bind.contextual_connect()
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
> > line 1592, in contextual_connect
> >    return self.Connection(self, self.pool.connect(),
> > close_with_result=close_with_result, **kwargs)
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/pool.py", line 154,
> > in connect
> >    return _ConnectionFairy(self).checkout()
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/pool.py", line 318,
> > in __init__
> >    rec = self._connection_record = pool.get()
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/pool.py", line 173,
> > in get
> >    return self.do_get()
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/pool.py", line 665,
> > in do_get
> >    con = self.create_connection()
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/pool.py", line 134,
> > in create_connection
> >    return _ConnectionRecord(self)
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/pool.py", line 214,
> > in __init__
> >    l.first_connect(self.connection, self)
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/
> > strategies.py", line 145, in first_connect
> >    dialect.initialize(c)
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/dialects/oracle/
> > base.py", line 604, in initialize
> >    super(OracleDialect, self).initialize(connection)
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/default.py",
> > line 138, in initialize
> >    self.returns_unicode_strings =
> > self._check_unicode_returns(connection)
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/default.py",
> > line 183, in _check_unicode_returns
> >    unicode_for_varchar = check_unicode(sqltypes.VARCHAR(60))
> >  File "/home/rarch/tg2env/lib/python2.6/site-packages/
> > SQLAlchemy-0.6.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/default.py",
> > line 173, in check_unicode
> >    ]).compile(dialect=self)
> > DatabaseError: ORA-00907: missing right parenthesis
>
> > Any ideas?  Any logging we can enable to help figure this out?
>
> > Thanks in advance.
>
> > --
> > 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