Fixed issue in oracledb / cx_oracle dialects where output type handlers for
``CLOB`` were being routed to ``NVARCHAR`` rather than ``VARCHAR``, causing
a double conversion to take place.
Fixes: #12150
Change-Id: I9f55e9bc595997b873c831b0422f5af10dcc15ef
(cherry picked from commit
5ded16fae8abfc31d43430cb25757fb434c37ba2)
--- /dev/null
+.. change::
+ :tags: bug, oracle
+ :tickets: 12150
+
+ Fixed issue in oracledb / cx_oracle dialects where output type handlers for
+ ``CLOB`` were being routed to ``NVARCHAR`` rather than ``VARCHAR``, causing
+ a double conversion to take place.
+
cx_Oracle.CLOB,
cx_Oracle.NCLOB,
):
+ typ = (
+ cx_Oracle.DB_TYPE_VARCHAR
+ if default_type is cx_Oracle.CLOB
+ else cx_Oracle.DB_TYPE_NVARCHAR
+ )
return cursor.var(
- cx_Oracle.DB_TYPE_NVARCHAR,
+ typ,
_CX_ORACLE_MAGIC_LOB_SIZE,
cursor.arraysize,
**dialect._cursor_var_unicode_kwargs,