Python cx_Oracle.NCLOB Examples
The following are 8
code examples of cx_Oracle.NCLOB().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
cx_Oracle
, or try the search function
.
Example #1
Source File: syntax.py From ccs-twistedextensions with Apache License 2.0 | 5 votes |
def preQuery(self, cursor): typeMap = {"integer": cx_Oracle.NUMBER, "text": cx_Oracle.NCLOB, "varchar": cx_Oracle.STRING, "timestamp": cx_Oracle.TIMESTAMP} self.var = cursor.var(typeMap[self.typeID]) return self.var
Example #2
Source File: dbapiclient.py From ccs-calendarserver with Apache License 2.0 | 5 votes |
def mapArgs(self, args): realArgs = [] for arg in args: if isinstance(arg, str): # We use NCLOB everywhere, so cx_Oracle requires a unicode-type # input. But we mostly pass around utf-8 encoded bytes at the # application layer as they consume less memory, so do the # conversion here. arg = arg.decode('utf-8') if isinstance(arg, unicode) and len(arg) > 1024: # This *may* cause a type mismatch, but none of the non-CLOB # strings that we're passing would allow a value this large # anyway. Smaller strings will be automatically converted by # the bindings; larger ones will generate an error. I'm not # sure why cx_Oracle itself doesn't just do the following hack # automatically and internally for larger values too, but, here # it is: v = self.var(cx_Oracle.NCLOB, len(arg) + 1) v.setvalue(0, arg) elif isinstance(arg, datetime.datetime): # By default when cx_Oracle is passed a datetime object it maps it to a # cx_Oracle.DATETIME variable which does not serialize fraction seconds # into the query, or call, arguments. However, for high volume systems, # we really want sub-second resolution for things like the job queue, # so we want to serialize datetime as cx_Oracle.TIMESTAMP. v = self.var(cx_Oracle.TIMESTAMP) v.setvalue(0, arg) else: v = arg realArgs.append(v) return realArgs
Example #3
Source File: cx_oracle.py From planespotter with MIT License | 5 votes |
def __init__(self, auto_convert_lobs=True, threaded=True, coerce_to_unicode=False, coerce_to_decimal=True, arraysize=50, **kwargs): self._pop_deprecated_kwargs(kwargs) OracleDialect.__init__(self, **kwargs) self.threaded = threaded self.arraysize = arraysize self.auto_convert_lobs = auto_convert_lobs self.coerce_to_unicode = coerce_to_unicode self.coerce_to_decimal = coerce_to_decimal cx_Oracle = self.dbapi if cx_Oracle is None: self._include_setinputsizes = {} self.cx_oracle_ver = (0, 0, 0) else: self.cx_oracle_ver = self._parse_cx_oracle_ver(cx_Oracle.version) if self.cx_oracle_ver < (5, 0) and self.cx_oracle_ver > (0, 0, 0): raise exc.InvalidRequestError( "cx_Oracle version 5.0 and above are supported") self._has_native_int = hasattr(cx_Oracle, "NATIVE_INT") self._include_setinputsizes = { cx_Oracle.NCLOB, cx_Oracle.CLOB, cx_Oracle.LOB, cx_Oracle.BLOB, cx_Oracle.FIXED_CHAR, } self._is_cx_oracle_6 = self.cx_oracle_ver >= (6, )
Example #4
Source File: cx_oracle.py From jarvis with GNU General Public License v2.0 | 5 votes |
def __init__(self, auto_convert_lobs=True, threaded=True, coerce_to_unicode=False, coerce_to_decimal=True, arraysize=50, **kwargs): self._pop_deprecated_kwargs(kwargs) OracleDialect.__init__(self, **kwargs) self.threaded = threaded self.arraysize = arraysize self.auto_convert_lobs = auto_convert_lobs self.coerce_to_unicode = coerce_to_unicode self.coerce_to_decimal = coerce_to_decimal cx_Oracle = self.dbapi if cx_Oracle is None: self._include_setinputsizes = {} self.cx_oracle_ver = (0, 0, 0) else: self.cx_oracle_ver = self._parse_cx_oracle_ver(cx_Oracle.version) if self.cx_oracle_ver < (5, 0) and self.cx_oracle_ver > (0, 0, 0): raise exc.InvalidRequestError( "cx_Oracle version 5.0 and above are supported") self._has_native_int = hasattr(cx_Oracle, "NATIVE_INT") self._include_setinputsizes = { cx_Oracle.NCLOB, cx_Oracle.CLOB, cx_Oracle.LOB, cx_Oracle.BLOB, cx_Oracle.FIXED_CHAR, } self._is_cx_oracle_6 = self.cx_oracle_ver >= (6, )
Example #5
Source File: cx_oracle.py From planespotter with MIT License | 4 votes |
def _generate_connection_outputtype_handler(self): """establish the default outputtypehandler established at the connection level. """ dialect = self cx_Oracle = dialect.dbapi number_handler = _OracleNUMBER(asdecimal=True).\ _cx_oracle_outputtypehandler(dialect) float_handler = _OracleNUMBER(asdecimal=False).\ _cx_oracle_outputtypehandler(dialect) def output_type_handler(cursor, name, default_type, size, precision, scale): if default_type == cx_Oracle.NUMBER: if not dialect.coerce_to_decimal: return None elif precision == 0 and scale in (0, -127): # ambiguous type, this occurs when selecting # numbers from deep subqueries return cursor.var( cx_Oracle.STRING, 255, outconverter=dialect._detect_decimal, arraysize=cursor.arraysize) elif precision and scale > 0: return number_handler( cursor, name, default_type, size, precision, scale ) else: return float_handler( cursor, name, default_type, size, precision, scale ) # allow all strings to come back natively as Unicode elif dialect.coerce_to_unicode and \ default_type in (cx_Oracle.STRING, cx_Oracle.FIXED_CHAR): return cursor.var( util.text_type, size, cursor.arraysize ) elif dialect.auto_convert_lobs and default_type in ( cx_Oracle.CLOB, cx_Oracle.NCLOB, cx_Oracle.BLOB ): return cursor.var( default_type, size, cursor.arraysize, outconverter=lambda value: value.read() ) return output_type_handler
Example #6
Source File: cx_oracle.py From jarvis with GNU General Public License v2.0 | 4 votes |
def _generate_connection_outputtype_handler(self): """establish the default outputtypehandler established at the connection level. """ dialect = self cx_Oracle = dialect.dbapi number_handler = _OracleNUMBER(asdecimal=True).\ _cx_oracle_outputtypehandler(dialect) float_handler = _OracleNUMBER(asdecimal=False).\ _cx_oracle_outputtypehandler(dialect) def output_type_handler(cursor, name, default_type, size, precision, scale): if default_type == cx_Oracle.NUMBER: if not dialect.coerce_to_decimal: return None elif precision == 0 and scale in (0, -127): # ambiguous type, this occurs when selecting # numbers from deep subqueries return cursor.var( cx_Oracle.STRING, 255, outconverter=dialect._detect_decimal, arraysize=cursor.arraysize) elif precision and scale > 0: return number_handler( cursor, name, default_type, size, precision, scale ) else: return float_handler( cursor, name, default_type, size, precision, scale ) # allow all strings to come back natively as Unicode elif dialect.coerce_to_unicode and \ default_type in (cx_Oracle.STRING, cx_Oracle.FIXED_CHAR): return cursor.var( util.text_type, size, cursor.arraysize ) elif dialect.auto_convert_lobs and default_type in ( cx_Oracle.CLOB, cx_Oracle.NCLOB, cx_Oracle.BLOB ): return cursor.var( default_type, size, cursor.arraysize, outconverter=lambda value: value.read() ) return output_type_handler
Example #7
Source File: cx_oracle.py From android_universal with MIT License | 4 votes |
def __init__(self, auto_convert_lobs=True, threaded=True, coerce_to_unicode=False, coerce_to_decimal=True, arraysize=50, **kwargs): self._pop_deprecated_kwargs(kwargs) OracleDialect.__init__(self, **kwargs) self.threaded = threaded self.arraysize = arraysize self.auto_convert_lobs = auto_convert_lobs self.coerce_to_unicode = coerce_to_unicode self.coerce_to_decimal = coerce_to_decimal cx_Oracle = self.dbapi if cx_Oracle is None: self._include_setinputsizes = {} self.cx_oracle_ver = (0, 0, 0) else: self.cx_oracle_ver = self._parse_cx_oracle_ver(cx_Oracle.version) if self.cx_oracle_ver < (5, 2) and self.cx_oracle_ver > (0, 0, 0): raise exc.InvalidRequestError( "cx_Oracle version 5.2 and above are supported") self._has_native_int = hasattr(cx_Oracle, "NATIVE_INT") self._include_setinputsizes = { cx_Oracle.NCLOB, cx_Oracle.CLOB, cx_Oracle.LOB, cx_Oracle.NCHAR, cx_Oracle.FIXED_NCHAR, cx_Oracle.BLOB, cx_Oracle.FIXED_CHAR, cx_Oracle.TIMESTAMP, _OracleInteger, _OracleBINARY_FLOAT, _OracleBINARY_DOUBLE } self._paramval = lambda value: value.getvalue() # https://github.com/oracle/python-cx_Oracle/issues/176#issuecomment-386821291 # https://github.com/oracle/python-cx_Oracle/issues/224 self._values_are_lists = self.cx_oracle_ver >= (6, 3) if self._values_are_lists: cx_Oracle.__future__.dml_ret_array_val = True def _returningval(value): try: return value.values[0][0] except IndexError: return None self._returningval = _returningval else: self._returningval = self._paramval self._is_cx_oracle_6 = self.cx_oracle_ver >= (6, )
Example #8
Source File: cx_oracle.py From android_universal with MIT License | 4 votes |
def _generate_connection_outputtype_handler(self): """establish the default outputtypehandler established at the connection level. """ dialect = self cx_Oracle = dialect.dbapi number_handler = _OracleNUMBER(asdecimal=True).\ _cx_oracle_outputtypehandler(dialect) float_handler = _OracleNUMBER(asdecimal=False).\ _cx_oracle_outputtypehandler(dialect) def output_type_handler(cursor, name, default_type, size, precision, scale): if default_type == cx_Oracle.NUMBER: if not dialect.coerce_to_decimal: return None elif precision == 0 and scale in (0, -127): # ambiguous type, this occurs when selecting # numbers from deep subqueries return cursor.var( cx_Oracle.STRING, 255, outconverter=dialect._detect_decimal, arraysize=cursor.arraysize) elif precision and scale > 0: return number_handler( cursor, name, default_type, size, precision, scale ) else: return float_handler( cursor, name, default_type, size, precision, scale ) # allow all strings to come back natively as Unicode elif dialect.coerce_to_unicode and \ default_type in (cx_Oracle.STRING, cx_Oracle.FIXED_CHAR): return cursor.var( util.text_type, size, cursor.arraysize ) elif dialect.auto_convert_lobs and default_type in ( cx_Oracle.CLOB, cx_Oracle.NCLOB, cx_Oracle.BLOB ): return cursor.var( default_type, size, cursor.arraysize, outconverter=lambda value: value.read() ) return output_type_handler