diff options
| author | John Vandenberg <jayvdb@gmail.com> | 2016-05-05 09:26:00 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-05-16 10:15:19 -0400 |
| commit | 9611ba3a9d7cb134869d3b17949a33647bd56045 (patch) | |
| tree | 49708e5620e7dae0b02984ee58ab4f058dc7fe5b /lib/sqlalchemy | |
| parent | 8ecad78ba3473d97df8ed4f20f28ddf966ce0277 (diff) | |
| download | sqlalchemy-9611ba3a9d7cb134869d3b17949a33647bd56045.tar.gz | |
Fix TypeError during cx_Oracle connection
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.
Fixes: #3705
Change-Id: I8da5d8a227ca12c9bf17a6127460e413841951fb
Pull-request: https://github.com/zzzeek/sqlalchemy/pull/271
Diffstat (limited to 'lib/sqlalchemy')
| -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 0c93ced97..cfd942d85 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -914,13 +914,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(): |
