summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/oracle.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-01-01 00:43:24 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-01-01 00:43:24 +0000
commit65c618534ff5c6401d1e6f6318e3e4c6b1516204 (patch)
tree3ecfd57636e6ebec648b9d397200cb2537f773a7 /lib/sqlalchemy/databases/oracle.py
parent85ab0501f46b473e4283dd2df9f9b74a89ad9021 (diff)
downloadsqlalchemy-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.py13
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):