diff options
author | John Vandenberg <jayvdb@gmail.com> | 2016-05-03 19:40:50 +0700 |
---|---|---|
committer | John Vandenberg <jayvdb@gmail.com> | 2016-05-05 15:10:34 +0700 |
commit | 510547a40bea6b427a741845dab7e4fc9b717086 (patch) | |
tree | 6376088e7818a01ea3afff1ba0fc28fbccfe5312 | |
parent | 93b48e6aba6b1c20f525a0a22d58fc57ee4637f5 (diff) | |
download | sqlalchemy-pr/271.tar.gz |
Fix TypeError during cx_Oracle connectionpr/271
cx_Oracle connection parameters user, password and dsn must be
either a string or NULL. When they are passed a Python None object,
"TypeError: expecting string, unicode or buffer object" is raised.
-rw-r--r-- | lib/sqlalchemy/dialects/oracle/cx_oracle.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index dede3b21a..dfceb3091 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -898,13 +898,17 @@ class OracleDialect_cx_oracle(OracleDialect): dsn = url.host opts = dict( - user=url.username, - password=url.password, - dsn=dsn, threaded=self.threaded, twophase=self.allow_twophase, ) + if dsn is not None: + opts['dsn'] = dsn + if url.password is not None: + opts['password'] = url.password + if url.username is not None: + opts['user'] = url.username + if util.py2k: if self._cx_oracle_with_unicode: for k, v in opts.items(): |