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.

Reply via email to