what do you get for engine.dialect.supports_char_length, engine.dialect.server_version_info ?
On May 17, 2010, at 4:56 PM, Kent wrote: > 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. > -- 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.