diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-01-01 00:43:24 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-01-01 00:43:24 +0000 |
commit | 65c618534ff5c6401d1e6f6318e3e4c6b1516204 (patch) | |
tree | 3ecfd57636e6ebec648b9d397200cb2537f773a7 /lib/sqlalchemy/databases/oracle.py | |
parent | 85ab0501f46b473e4283dd2df9f9b74a89ad9021 (diff) | |
download | sqlalchemy-65c618534ff5c6401d1e6f6318e3e4c6b1516204.tar.gz |
fix up oracle handling of LOB/string [ticket:902], slight fixes to defaults.py but we
will need to fix up result-type handling some more
Diffstat (limited to 'lib/sqlalchemy/databases/oracle.py')
-rw-r--r-- | lib/sqlalchemy/databases/oracle.py | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index c57ed006c..99cfbbb3a 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -95,11 +95,9 @@ class OracleText(sqltypes.TEXT): def result_processor(self, dialect): super_process = super(OracleText, self).result_processor(dialect) + lob = dialect.dbapi.LOB def process(value): - if value is None: - return None - elif hasattr(value, 'read'): - # cx_oracle doesnt seem to be consistent with CLOB returning LOB or str + if isinstance(value, lob): if super_process: return super_process(value.read()) else: @@ -130,11 +128,12 @@ class OracleBinary(sqltypes.Binary): return None def result_processor(self, dialect): + lob = dialect.dbapi.LOB def process(value): - if value is None: - return None - else: + if isinstance(value, lob): return value.read() + else: + return value return process class OracleBoolean(sqltypes.Boolean): |