亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python連接Oracle之環境配置、實例代碼及報錯解決方法詳解

2020-02-15 21:15:14
字體:
來源:轉載
供稿:網友

Oracle Client 安裝

1、環境

日期:2019年8月1日

公司已經安裝好Oracle服務端

Windows版本:Windows10專業版

系統類型:64位操作系統,基于x64的處理器

Python版本:Python 3.6.4 :: Anaconda, Inc.

2、下載網址

https://www.oracle.com/database/technologies/instant-client/downloads.html

3、解壓至目錄

解壓后(這里放D盤)

4、配置環境變量

控制面板/系統和安全/系統 -> 高級系統設置 -> 環境變量

新建ORACLE_HOME,值為包解壓的路徑

編輯PATH,添加%ORACLE_HOME%

Navicat連接測試

cx_Oracle

安裝命令

conda install cx_Oracle

基礎代碼

import cx_Oracledef execute(query):  db = cx_Oracle.connect('用戶名/密碼@IP/ServiceName')  cursor = db.cursor()  cursor.execute(query)  result = cursor.fetchall()  cursor.close()  db.close()  return resultdef commit(sql):  db = cx_Oracle.connect('用戶名/密碼@IP/ServiceName')  cursor = db.cursor()  cursor.execute(sql)  db.commit()  cursor.close()  db.close()

封裝成類

from cx_Oracle import Connection # conda install cx_Oraclefrom conf import CONN, Colorclass Oracle(Color):  def __init__(self, conn=CONN):    self.db = Connection(*conn, encoding='utf8') # 用戶名 密碼 IP/ServiceName    self.cursor = self.db.cursor()  def __del__(self):    self.cursor.close()    self.db.close()  def commit(self, sql):    try:      self.cursor.execute(sql)      self.db.commit()    except Exception as e:      self.red(e)  def fetchall(self, query):    self.cursor.execute(query)    return self.cursor.fetchall()  def fetchone(self, query, n=9999999):    self.cursor.execute(query)    for _ in range(n):      one = self.cursor.fetchone()      if one:        yield one  def fetchone_dt(self, query, n=9999999):    self.cursor.execute(query)    columns = [i[0] for i in self.cursor.description]    length = len(columns)    for _ in range(n):      one = self.cursor.fetchone() # tuple      yield {columns[i]: one[i] for i in range(length)}  def read_clob(self, query):    self.cursor.execute(query)    one = self.cursor.fetchone()    while one:      try:        yield one[0].read()      except Exception as e:        self.red(e)      one = self.cursor.fetchone()  def db2sheet(self, query, prefix):    df = pd.read_sql_query(query, self.db)    if 'url' in df.columns:      df['url'] = "'" + df['url']    df.to_excel(prefix.replace('.xlsx', '')+'.xlsx', index=False)  def db2sheets(self, queries, prefix):    writer = pd.ExcelWriter(prefix.replace('.xlsx', '')+'.xlsx')    for sheet_name, query in queries.items():      df = pd.read_sql_query(query, self.db)      if 'url' in df.columns:        df['url'] = "'" + df['url']      df.to_excel(writer, sheet_name=sheet_name, index=False)    writer.save()  def tb2sheet(self, table):    sql = "SELECT * FROM " + table    self.db2sheet(sql, table)  def insert(self, dt, tb):    for k, v in dt.items():      if isinstance(v, str):        dt[k] = v.replace("'", '').strip()    ls = [(k, v) for k, v in dt.items() if v is not None]    sql = 'INSERT INTO %s (' % tb + ','.join(i[0] for i in ls) + /       ') VALUES (' + ','.join('%r' % i[1] for i in ls) + ')'    self.commit(sql)  def insert_clob(self, dt, tb, clob):    for k, v in dt.items():      if isinstance(v, str):        dt[k] = v.replace("'", '').strip()    # 把超長文本保存在一個變量中    # declare = "DECLARE variate CLOB := '%s';/n" % dt[clob]    join = lambda x: '||'.join("'%s'" % x[10922*i: 10922*(i+1)] for i in range(len(x)//10922+1)) # 32768//3    declare = "DECLARE variate CLOB := %s;/n" % join(dt[clob])    dt[clob] = 'variate'    ls = [(k, v) for k, v in dt.items() if v is not None]    sql = 'INSERT INTO %s (' % tb + ','.join(i[0] for i in ls) + ') VALUES (' +/       ','.join('%r' % i[1] for i in ls) + ');'    sql = declare + 'BEGIN/n%s/nEND;' % sql.replace("'variate'", 'variate')    self.commit(sql)  def update(self, dt_update, dt_condition, table):    sql = 'UPDATE %s SET ' % table + ','.join('%s=%r' % (k, v) for k, v in dt_update.items()) /       + ' WHERE ' + ' AND '.join('%s=%r' % (k, v) for k, v in dt_condition.items())    self.commit(sql)  def truncate(self, tb):    self.commit('truncate table ' + tb)db_read = Oracle()fetchall = db_read.fetchallfetchone = db_read.fetchoneread_clob = db_read.read_clobif __name__ == '__main__':  query = '''  '''.strip()  for i in fetchone(query, 99):    print(i)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一av在线| 成人免费午夜电影| 久久久精品在线观看| 国产成人精品午夜| 亚洲国产精品成人va在线观看| 国产日本欧美一区二区三区在线| 亚洲最新av在线网站| 亚洲人成在线一二| 国产精品草莓在线免费观看| 国产欧美久久久久久| 日本乱人伦a精品| 国产精品爽黄69天堂a| 国产成人一区二区三区| 久久99热这里只有精品国产| 日韩国产中文字幕| 欧美日韩国产黄| 久久精品国产一区二区三区| 久久免费国产精品1| 国产丝袜一区二区三区免费视频| 日韩欧美极品在线观看| 国产一区二区三区直播精品电影| 欧美黄色片免费观看| 深夜成人在线观看| 人人爽久久涩噜噜噜网站| 久久久99久久精品女同性| 精品福利在线看| 国产精品成人品| 这里只有视频精品| 日韩激情av在线免费观看| 久久99久国产精品黄毛片入口| 欧美激情视频网站| 国内成人精品视频| zzijzzij亚洲日本成熟少妇| 久久理论片午夜琪琪电影网| 精品国产一区二区三区久久久| 午夜免费在线观看精品视频| 久久99国产精品久久久久久久久| 色无极亚洲影院| 国产午夜精品一区理论片飘花| 亚洲视频自拍偷拍| 欧美裸体男粗大视频在线观看| 国产网站欧美日韩免费精品在线观看| 97超碰色婷婷| 日韩av一区在线观看| 日韩av免费观影| 亚洲在线观看视频| 欧美激情一区二区三区在线视频观看| 国产日韩亚洲欧美| 欧美性视频在线| 亚洲一区二区三区sesese| 精品日本美女福利在线观看| 亚洲精品永久免费| 欧美一区二三区| 黑人欧美xxxx| 国产精品欧美日韩久久| 日韩影视在线观看| 91久久精品国产91性色| 中文字幕无线精品亚洲乱码一区| 国产精品久久久久久久app| 精品亚洲国产成av人片传媒| 久久久久久免费精品| 97在线精品视频| 久久噜噜噜精品国产亚洲综合| 久久精品视频一| 成人中文字幕在线观看| 亚洲成人久久网| 久久99精品久久久久久噜噜| 国产精品久久久久久久电影| 国产精品一区二区av影院萌芽| 久久久久久av| 日韩av成人在线观看| 97婷婷大伊香蕉精品视频| 91麻豆国产语对白在线观看| 日韩视频―中文字幕| 成人在线小视频| 欧美在线一区二区视频| 亚洲2020天天堂在线观看| 92国产精品久久久久首页| 中文字幕欧美视频在线| 精品视频在线观看日韩| 一区二区三欧美| 97在线视频免费| 国产精品第一页在线| 中文字幕久热精品在线视频| 国产亚洲欧美日韩精品| 国产97在线播放| 日本久久久久久久久久久| 日韩在线精品一区| 国产日韩欧美在线观看| 1769国产精品| 久久视频在线免费观看| 欧美性生活大片免费观看网址| 欧美日韩加勒比精品一区| 91久久国产婷婷一区二区| 九九久久久久久久久激情| 欧美电影在线观看网站| 亚洲黄页网在线观看| 国产精品视频网站| 日韩欧美国产黄色| 欧美黑人一区二区三区| 91国内在线视频| 日韩电影中文字幕在线观看| 久久成人精品一区二区三区| 欧美日韩激情视频| 国产日韩视频在线观看| 日韩精品极品在线观看| 久久国内精品一国内精品| 成人女保姆的销魂服务| 国产精品午夜视频| 国产精品jizz在线观看麻豆| 国产日韩欧美中文在线播放| 91网站在线看| 成人有码在线播放| 日韩精品在线观看一区二区| 中文字幕亚洲字幕| 一区二区三区国产在线观看| 91av在线精品| 亚洲久久久久久久久久久| 久久久av网站| 永久免费看mv网站入口亚洲| 色综合天天狠天天透天天伊人| 欧美福利视频在线| 日本一区二区在线免费播放| 亚洲天堂视频在线观看| 日韩精品亚洲精品| 国产精品免费久久久久影院| 78m国产成人精品视频| 日韩美女免费观看| 一本色道久久88亚洲综合88| 久久久91精品国产| 亚洲天堂免费在线| 亚洲r级在线观看| 久久精品久久久久久| 国产国语刺激对白av不卡| 在线观看日韩www视频免费| 久久精品国产亚洲| 亚洲一级一级97网| 欧美日韩国产色视频| 色伦专区97中文字幕| 亚洲精品狠狠操| 亚洲精品电影久久久| 91免费福利视频| 精品亚洲va在线va天堂资源站| 韩国欧美亚洲国产| 欧美激情视频播放| 国产小视频国产精品| 一区二区三区无码高清视频| 亚洲成人亚洲激情| 国产99视频在线观看| 亚洲国产私拍精品国模在线观看| 91夜夜未满十八勿入爽爽影院| 精品国产乱码久久久久久虫虫漫画| 欧美性猛交xxxx乱大交| 午夜精品久久久久久久99黑人| 色婷婷亚洲mv天堂mv在影片| 日本精品中文字幕| 欧美夜福利tv在线| 国产精品视频久久久久| 亚洲国产欧美精品| 欧美一区第一页| 亚洲国产另类 国产精品国产免费| 亚洲自拍偷拍福利| 麻豆国产精品va在线观看不卡| 日韩有码在线观看|