亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? oracle.py

?? SQLAlchemy. 經典的Python ORM框架。學習必看。
?? PY
?? 第 1 頁 / 共 2 頁
字號:
# oracle.py# Copyright (C) 2005, 2006, 2007, 2008 Michael Bayer mike_mp@zzzcomputing.com## This module is part of SQLAlchemy and is released under# the MIT License: http://www.opensource.org/licenses/mit-license.phpimport datetime, random, refrom sqlalchemy import util, sql, schema, exceptions, loggingfrom sqlalchemy.engine import default, basefrom sqlalchemy.sql import compiler, visitorsfrom sqlalchemy.sql import operators as sql_operators, functions as sql_functionsfrom sqlalchemy import types as sqltypesclass OracleNumeric(sqltypes.Numeric):    def get_col_spec(self):        if self.precision is None:            return "NUMERIC"        else:            return "NUMERIC(%(precision)s, %(length)s)" % {'precision': self.precision, 'length' : self.length}class OracleInteger(sqltypes.Integer):    def get_col_spec(self):        return "INTEGER"class OracleSmallInteger(sqltypes.Smallinteger):    def get_col_spec(self):        return "SMALLINT"class OracleDate(sqltypes.Date):    def get_col_spec(self):        return "DATE"    def bind_processor(self, dialect):        return None    def result_processor(self, dialect):        def process(value):            if not isinstance(value, datetime.datetime):                return value            else:                return value.date()        return processclass OracleDateTime(sqltypes.DateTime):    def get_col_spec(self):        return "DATE"    def result_processor(self, dialect):        def process(value):            if value is None or isinstance(value,datetime.datetime):                return value            else:                # convert cx_oracle datetime object returned pre-python 2.4                return datetime.datetime(value.year,value.month,                    value.day,value.hour, value.minute, value.second)        return process# Note:# Oracle DATE == DATETIME# Oracle does not allow milliseconds in DATE# Oracle does not support TIME columns# only if cx_oracle contains TIMESTAMPclass OracleTimestamp(sqltypes.TIMESTAMP):    def get_col_spec(self):        return "TIMESTAMP"    def get_dbapi_type(self, dialect):        return dialect.TIMESTAMP    def result_processor(self, dialect):        def process(value):            if value is None or isinstance(value,datetime.datetime):                return value            else:                # convert cx_oracle datetime object returned pre-python 2.4                return datetime.datetime(value.year,value.month,                    value.day,value.hour, value.minute, value.second)        return processclass OracleString(sqltypes.String):    def get_col_spec(self):        return "VARCHAR(%(length)s)" % {'length' : self.length}class OracleText(sqltypes.Text):    def get_dbapi_type(self, dbapi):        return dbapi.CLOB    def get_col_spec(self):        return "CLOB"    def result_processor(self, dialect):        super_process = super(OracleText, self).result_processor(dialect)        lob = dialect.dbapi.LOB        def process(value):            if isinstance(value, lob):                if super_process:                    return super_process(value.read())                else:                    return value.read()            else:                if super_process:                    return super_process(value)                else:                    return value        return processclass OracleRaw(sqltypes.Binary):    def get_col_spec(self):        return "RAW(%(length)s)" % {'length' : self.length}class OracleChar(sqltypes.CHAR):    def get_col_spec(self):        return "CHAR(%(length)s)" % {'length' : self.length}class OracleBinary(sqltypes.Binary):    def get_dbapi_type(self, dbapi):        return dbapi.BLOB    def get_col_spec(self):        return "BLOB"    def bind_processor(self, dialect):        return None    def result_processor(self, dialect):        lob = dialect.dbapi.LOB        def process(value):            if isinstance(value, lob):                return value.read()            else:                return value        return processclass OracleBoolean(sqltypes.Boolean):    def get_col_spec(self):        return "SMALLINT"    def result_processor(self, dialect):        def process(value):            if value is None:                return None            return value and True or False        return process    def bind_processor(self, dialect):        def process(value):            if value is True:                return 1            elif value is False:                return 0            elif value is None:                return None            else:                return value and True or False        return processcolspecs = {    sqltypes.Integer : OracleInteger,    sqltypes.Smallinteger : OracleSmallInteger,    sqltypes.Numeric : OracleNumeric,    sqltypes.Float : OracleNumeric,    sqltypes.DateTime : OracleDateTime,    sqltypes.Date : OracleDate,    sqltypes.String : OracleString,    sqltypes.Binary : OracleBinary,    sqltypes.Boolean : OracleBoolean,    sqltypes.Text : OracleText,    sqltypes.TIMESTAMP : OracleTimestamp,    sqltypes.CHAR: OracleChar,}ischema_names = {    'VARCHAR2' : OracleString,    'DATE' : OracleDateTime,    'DATETIME' : OracleDateTime,    'NUMBER' : OracleNumeric,    'BLOB' : OracleBinary,    'CLOB' : OracleText,    'TIMESTAMP' : OracleTimestamp,    'RAW' : OracleRaw,    'FLOAT' : OracleNumeric,    'DOUBLE PRECISION' : OracleNumeric,    'LONG' : OracleText,}def descriptor():    return {'name':'oracle',    'description':'Oracle',    'arguments':[        ('dsn', 'Data Source Name', None),        ('user', 'Username', None),        ('password', 'Password', None)    ]}class OracleExecutionContext(default.DefaultExecutionContext):    def pre_exec(self):        super(OracleExecutionContext, self).pre_exec()        if self.dialect.auto_setinputsizes:            self.set_input_sizes()        if self.compiled_parameters is not None and len(self.compiled_parameters) == 1:            for key in self.compiled.binds:                bindparam = self.compiled.binds[key]                name = self.compiled.bind_names[bindparam]                value = self.compiled_parameters[0][name]                if bindparam.isoutparam:                    dbtype = bindparam.type.dialect_impl(self.dialect).get_dbapi_type(self.dialect.dbapi)                    if not hasattr(self, 'out_parameters'):                        self.out_parameters = {}                    self.out_parameters[name] = self.cursor.var(dbtype)                    self.parameters[0][name] = self.out_parameters[name]    def get_result_proxy(self):        if hasattr(self, 'out_parameters'):            if self.compiled_parameters is not None and len(self.compiled_parameters) == 1:                 for bind, name in self.compiled.bind_names.iteritems():                     if name in self.out_parameters:                         type = bind.type                         self.out_parameters[name] = type.dialect_impl(self.dialect).result_processor(self.dialect)(self.out_parameters[name].getvalue())            else:                 for k in self.out_parameters:                     self.out_parameters[k] = self.out_parameters[k].getvalue()        if self.cursor.description is not None:            for column in self.cursor.description:                type_code = column[1]                if type_code in self.dialect.ORACLE_BINARY_TYPES:                    return base.BufferedColumnResultProxy(self)        return base.ResultProxy(self)class OracleDialect(default.DefaultDialect):    supports_alter = True    supports_unicode_statements = False    max_identifier_length = 30    supports_sane_rowcount = True    supports_sane_multi_rowcount = False    preexecute_pk_sequences = True    supports_pk_autoincrement = False    def __init__(self, use_ansi=True, auto_setinputsizes=True, auto_convert_lobs=True, threaded=True, allow_twophase=True, **kwargs):        default.DefaultDialect.__init__(self, default_paramstyle='named', **kwargs)        self.use_ansi = use_ansi        self.threaded = threaded        self.allow_twophase = allow_twophase        self.supports_timestamp = self.dbapi is None or hasattr(self.dbapi, 'TIMESTAMP' )        self.auto_setinputsizes = auto_setinputsizes        self.auto_convert_lobs = auto_convert_lobs        if self.dbapi is None or not self.auto_convert_lobs or not 'CLOB' in self.dbapi.__dict__:            self.dbapi_type_map = {}            self.ORACLE_BINARY_TYPES = []        else:            # only use this for LOB objects.  using it for strings, dates            # etc. leads to a little too much magic, reflection doesn't know if it should            # expect encoded strings or unicodes, etc.            self.dbapi_type_map = {                self.dbapi.CLOB: OracleText(),                self.dbapi.BLOB: OracleBinary(),                self.dbapi.BINARY: OracleRaw(),            }            self.ORACLE_BINARY_TYPES = [getattr(self.dbapi, k) for k in ["BFILE", "CLOB", "NCLOB", "BLOB"] if hasattr(self.dbapi, k)]    def dbapi(cls):        import cx_Oracle        return cx_Oracle    dbapi = classmethod(dbapi)    def create_connect_args(self, url):        dialect_opts = dict(url.query)        for opt in ('use_ansi', 'auto_setinputsizes', 'auto_convert_lobs',                    'threaded', 'allow_twophase'):            if opt in dialect_opts:                util.coerce_kw_type(dialect_opts, opt, bool)                setattr(self, opt, dialect_opts[opt])        if url.database:            # if we have a database, then we have a remote host            port = url.port            if port:                port = int(port)            else:                port = 1521            dsn = self.dbapi.makedsn(url.host, port, url.database)        else:            # we have a local tnsname            dsn = url.host        opts = dict(            user=url.username,            password=url.password,            dsn=dsn,            threaded=self.threaded,            twophase=self.allow_twophase,            )        if 'mode' in url.query:            opts['mode'] = url.query['mode']            if isinstance(opts['mode'], basestring):                mode = opts['mode'].upper()                if mode == 'SYSDBA':                    opts['mode'] = self.dbapi.SYSDBA                elif mode == 'SYSOPER':                    opts['mode'] = self.dbapi.SYSOPER                else:                    util.coerce_kw_type(opts, 'mode', int)        # Can't set 'handle' or 'pool' via URL query args, use connect_args        return ([], opts)    def is_disconnect(self, e):        if isinstance(e, self.dbapi.InterfaceError):            return "not connected" in str(e)        else:            return "ORA-03114" in str(e) or "ORA-03113" in str(e)    def type_descriptor(self, typeobj):        return sqltypes.adapt_type(typeobj, colspecs)    def oid_column_name(self, column):        if not isinstance(column.table, (sql.TableClause, sql.Select)):            return None        else:            return "rowid"    def create_xid(self):        """create a two-phase transaction ID.        this id will be passed to do_begin_twophase(), do_rollback_twophase(),        do_commit_twophase().  its format is unspecified."""        id = random.randint(0,2**128)        return (0x1234, "%032x" % 9, "%032x" % id)    def do_release_savepoint(self, connection, name):        # Oracle does not support RELEASE SAVEPOINT        pass    def do_begin_twophase(self, connection, xid):        connection.connection.begin(*xid)    def do_prepare_twophase(self, connection, xid):        connection.connection.prepare()    def do_rollback_twophase(self, connection, xid, is_prepared=True, recover=False):        self.do_rollback(connection.connection)    def do_commit_twophase(self, connection, xid, is_prepared=True, recover=False):        self.do_commit(connection.connection)    def do_recover_twophase(self, connection):        pass    def create_execution_context(self, *args, **kwargs):        return OracleExecutionContext(self, *args, **kwargs)    def has_table(self, connection, table_name, schema=None):        cursor = connection.execute("""select table_name from all_tables where table_name=:name""", {'name':self._denormalize_name(table_name)})        return bool( cursor.fetchone() is not None )    def has_sequence(self, connection, sequence_name):        cursor = connection.execute("""select sequence_name from all_sequences where sequence_name=:name""", {'name':self._denormalize_name(sequence_name)})        return bool( cursor.fetchone() is not None )    def _locate_owner_row(self, owner, name, rows, raiseerr=False):        """return the row in the given list of rows which references the given table name and owner name."""        if not rows:            if raiseerr:                raise exceptions.NoSuchTableError(name)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人自拍网| 国产精品一区在线| 亚洲欧美日韩电影| 亚洲精品v日韩精品| 一区二区三区不卡视频在线观看| 亚洲人成电影网站色mp4| 成人欧美一区二区三区视频网页| 中文字幕视频一区二区三区久| 亚洲欧洲色图综合| 亚洲成人1区2区| 青青草国产精品亚洲专区无| 毛片不卡一区二区| 成人精品国产一区二区4080| av男人天堂一区| 欧美日韩在线播放一区| 51久久夜色精品国产麻豆| 精品久久久久久综合日本欧美| 精品国产3级a| 国产三级欧美三级日产三级99| 国产精品国产馆在线真实露脸| 一区二区三区不卡视频| 久久国产精品72免费观看| 国产福利一区二区三区视频| 99久久精品免费看国产免费软件| 欧美色图第一页| 久久色视频免费观看| 国产精品国产成人国产三级 | 国产欧美精品一区aⅴ影院 | 91亚洲精品久久久蜜桃| 欧美日韩亚洲另类| 国产无人区一区二区三区| 亚洲激情网站免费观看| 男女激情视频一区| 99在线视频精品| 日韩你懂的在线观看| 亚洲视频小说图片| 国内精品伊人久久久久av影院| www.欧美.com| 欧美成人video| 亚洲综合激情小说| 成人一区二区三区中文字幕| 91精品国产一区二区三区| 国产精品日韩成人| 国内偷窥港台综合视频在线播放| 欧美在线视频你懂得| 欧美国产欧美亚州国产日韩mv天天看完整 | 成人免费精品视频| 欧美日韩国产首页| 久久久久久久精| 亚洲一区二区三区四区在线 | 岛国精品在线播放| 欧美精品国产精品| 一级日本不卡的影视| 高清不卡一区二区在线| 日韩欧美一二区| 亚洲午夜羞羞片| 99久久99久久免费精品蜜臀| 2024国产精品| 麻豆精品在线播放| 欧美日韩不卡一区| 亚洲成人一区二区在线观看| 91蝌蚪porny九色| 国产精品萝li| 99在线精品免费| 国产精品卡一卡二| 波多野结衣在线一区| 国产三级精品三级| 国产高清久久久久| 国产精品网站导航| 白白色亚洲国产精品| 国产精品丝袜久久久久久app| 国产剧情一区二区三区| 国产日韩精品久久久| 国产精品一区在线观看你懂的| 久久亚洲捆绑美女| 国产福利不卡视频| 国产精品白丝在线| 91毛片在线观看| 亚洲成在线观看| 欧美乱妇20p| 免费日本视频一区| 久久久久久亚洲综合| 岛国精品一区二区| 亚洲欧美乱综合| 欧美精品v日韩精品v韩国精品v| 亚洲国产欧美在线人成| 日韩一区二区在线免费观看| 久久国产精品99久久久久久老狼| 久久嫩草精品久久久精品| 国产99一区视频免费| 日韩毛片高清在线播放| 欧美久久免费观看| 久久精品国产99久久6| 国产精品三级av| 欧美日本一区二区三区| 国产最新精品免费| 亚洲精品久久7777| 91精品国产入口| 国产成人精品免费视频网站| 一区二区三区在线观看视频| 日韩精品一区二区三区中文不卡| 粉嫩av一区二区三区| 亚洲大片精品永久免费| 国产无一区二区| 欧美日韩大陆一区二区| 国产一二三精品| 一区二区三区中文免费| 久久综合九色综合欧美98 | 午夜久久久久久电影| 日韩欧美激情在线| 91麻豆成人久久精品二区三区| 三级精品在线观看| 国产精品久久免费看| 日韩视频在线观看一区二区| 北条麻妃国产九九精品视频| 亚洲va天堂va国产va久| 欧美国产1区2区| 日韩一级高清毛片| 91免费国产在线观看| 激情欧美一区二区| 天天影视涩香欲综合网| 中文字幕制服丝袜一区二区三区 | 亚洲国产wwwccc36天堂| 日韩三级视频中文字幕| 99久久精品免费观看| 国产在线精品一区二区夜色| 亚洲成人第一页| 亚洲精品中文字幕乱码三区| 国产欧美一区二区三区在线老狼| 欧美挠脚心视频网站| 欧洲亚洲精品在线| aaa欧美日韩| 岛国av在线一区| 国产成人精品亚洲午夜麻豆| 蜜桃av噜噜一区二区三区小说| 一区二区三区四区不卡视频| 亚洲视频1区2区| 亚洲日本青草视频在线怡红院| 欧美国产禁国产网站cc| 国产欧美日韩中文久久| 欧美一区二区三区在| 欧美美女黄视频| 678五月天丁香亚洲综合网| 欧美在线色视频| 欧美在线三级电影| 在线视频国内一区二区| 91福利国产成人精品照片| 色综合色综合色综合色综合色综合| 国产精品18久久久久| 国产福利一区在线| 成人激情视频网站| 成a人片国产精品| 99re这里只有精品首页| 日本韩国一区二区| 欧美色图在线观看| 欧美日韩成人综合| 日韩丝袜美女视频| 久久伊人中文字幕| 国产日韩三级在线| 亚洲欧美在线观看| 亚洲一区二区三区免费视频| 偷拍一区二区三区四区| 奇米影视在线99精品| 狠狠色丁香婷综合久久| 国产91丝袜在线播放九色| 99精品桃花视频在线观看| 91久久国产最好的精华液| 精品视频123区在线观看| 日韩一区二区精品在线观看| 久久综合视频网| 亚洲人精品午夜| 午夜av一区二区三区| 麻豆精品国产91久久久久久| 国产精品一区免费在线观看| 91亚洲精品一区二区乱码| 5566中文字幕一区二区电影| 国产亚洲综合色| 亚洲午夜视频在线| 国产一区二区三区免费播放| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美系列亚洲系列| 久久综合久久99| 亚洲第四色夜色| 国产一区在线观看视频| 一本色道久久综合亚洲91| 日韩亚洲欧美在线观看| 国产精品女主播av| 久久精品久久精品| 99免费精品在线| 精品国产免费人成在线观看| 依依成人综合视频| 激情小说亚洲一区| 欧美日韩国产精品成人| 国产精品萝li| 国产一区二区在线视频| 精品视频在线看| √…a在线天堂一区| 国产精品综合久久| 日韩欧美在线一区二区三区| 亚洲一区二区三区中文字幕在线|