最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python鏈接oracle數(shù)據(jù)庫以及數(shù)據(jù)庫的增刪改查實例

 更新時間:2018年01月30日 09:56:24   作者:淺顏半夏  
下面小編就為大家分享一篇python鏈接oracle數(shù)據(jù)庫以及數(shù)據(jù)庫的增刪改查實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

初次使用python鏈接oracle,所以想記錄下我遇到的問題,便于向我這樣初次嘗試的朋友能夠快速的配置好環(huán)境進入開發(fā)環(huán)節(jié)。

1.首先,python鏈接oracle數(shù)據(jù)庫需要配置好環(huán)境。

我的相關(guān)環(huán)境如下:

1)python:Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32

2)oracle:11.2.0.1.0 64bit。這個是server版本號,在鏈接oracle數(shù)據(jù)庫的時候還需要oracle的客戶端版,客戶端版本的下載也要參考python的版本,python是32位的客戶端下載也要用32位。

3)cx_Oracle:python鏈接oracle的驅(qū)動包,這個需要自己安裝,https://pypi.python.org/pypi/cx_Oracle/5.3在這個網(wǎng)址中下載對應(yīng)的驅(qū)動,下載驅(qū)動的時候一定要選好對應(yīng)的版本,我的python是3.6的32位版本,所以在下載驅(qū)動的時候也要選擇對應(yīng)的版本,我選擇的版本是cx_Oracle-5.3-11g.win32-py3.6.exe (md5),下載后直接安裝運行就行了,他會有一個自檢,如果沒有通過就說明你的驅(qū)動版本沒有下載對。

2.上面的工作做好之后,在剛才下載好的oracle客戶端版本中找到下面三個文件:oci.dll、oraocci11.dll、oraociei11.dll,將這幾個dll文件復制到

Python\Python36-32\Lib\site-packages文件夾中。

3.在python中輸入:

import cx_Oracle 

沒有報錯的話說明驅(qū)動安裝成功。

4.數(shù)據(jù)庫連接操作:

conn = cx_Oracle.connect('xzt/xzt@localhost/testdb')#這里的順序是用戶名/密碼@oracleserver的ip地址/數(shù)據(jù)庫名字 
  cur = conn.cursor() 
  sql = "SELECT * FROM DUAL" 
  cur.execute(sql) 
  cur.close() 
  conn.commit() 
  conn.close() 

5.數(shù)據(jù)庫查詢:

import cx_Oracle 
 
conn = cx_Oracle.connect('xzt/xzt@localhost/testdb')  
cursor = conn.cursor () 
 
cursor.execute ("SELECT * FROM STUDENT_TB") 
rows = cursor.fetchall() #得到所有數(shù)據(jù)集 
for row in rows: 
  print("%d, %s, %s, %s" % (row[0], row[1], row[2], row[3]))#python3以上版本中print()要加括號用了
 
print("Number of rows returned: %d" % cursor.rowcount) 
 
cursor.execute ("SELECT * FROM STUDENT_TB") 
while (True): 
  row = cursor.fetchone() #逐行得到數(shù)據(jù)集
  if row == None: 
    break 
  print("%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])) 
   
print("Number of rows returned: %d" % cursor.rowcount)
 
cursor.close () 
conn.close () 

6.數(shù)據(jù)庫插入:

import cx_Oracle 
 
conn = cx_Oracle.connect('xzp/xzp@localhost/testdb')  
cursor = conn.cursor() 
 
cursor.execute ("CREATE TABLE INSERTTEST(ID INT, C1 VARCHAR(50), C2 VARCHAR(50), C3 VARCHAR(50))") 
 
cursor.execute ("INSERT INTO INSERTTEST (ID, COL1, COL2, COL3)VALUES(1213412, 'asdfa', 'ewewe', 'sfjgsfg')") 
cursor.execute ("INSERT INTO INSERTTEST (ID, COL1, COL2, COL3)VALUES(12341, 'ashdfh', 'shhsdfh', 'sghs')") 
cursor.execute ("INSERT INTO INSERTTEST (ID, COL1, COL2, COL3)VALUES(123451235, 'werwerw', 'asdfaf', 'awew')") 
conn.commit() #這里一定要commit才行,要不然數(shù)據(jù)是不會插入的 
 
cursor.close() 
conn.close()

7案例:從某網(wǎng)站上面爬取彩票號碼

import re
import urllib
import cx_Oracle
import urllib.request

def getHtml(url):
	page = urllib.request.urlopen(url)
	html= page.read()
	return html
def getNumber(html):
	reg = r'<li class="ball_red">(\d{2})</li>'
	reg2 = r'<li class="ball_blue">(\d{2})</li>'
	regqnumber = r'第 <font class="cfont2"><strong>(\d*)</strong></font>'
	number = re.compile(reg)
	numberblue = re.compile(reg2)
	qnumber = re.compile(regqnumber)
	numberlist = re.findall(number,html.decode('gbk'))
	numberblue = re.findall(numberblue,html.decode('gbk'))
	qnum = re.findall(qnumber,html.decode('gbk'))
	for number in numberblue:
		numberlist.append(number)
	for n in qnum:
		numberlist.append(n)
	print(numberlist)
	return numberlist

	#將查詢到的號碼入庫
def RecodeToOracle(list):
	conn = cx_Oracle.connect('xzp/xzp@localhost/testdb.domain')
	cur = conn.cursor()
	sql = "INSERT INTO SSQ (REDNUM1,REDNUM2,REDNUM3,REDNUM4,REDNUM5,REDNUM6,BLUENUM,QNUMBER) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s')"%(list[0],list[1],list[2],list[3],list[4],list[5],list[6],list[7])
	cur.execute(sql)
	cur.close()
	conn.commit()#這里一定要提交,要不然是沒有辦法將數(shù)據(jù)入庫的
	conn.close()#記得要關(guān)閉會話
def Geturl(html):
	reg = r'上一期:<a href="(.*)" rel="external nofollow" target="_blank">'
	url = re.compile(reg)
	urllist = re.findall(url,html.decode('gbk'))
	if len(urllist)!=0:
		print(urllist[0])
		if urllist[0].index('http:')<0:
			urllist[0]='http:'+urllist[0]
		htmlbefore = getHtml(urllist[0])
		# print(htmlbefore)
		numberlist = getNumber(htmlbefore)
		print(len(numberlist))
		RecodeToOracle(numberlist)
		print(numberlist)
		Geturl(htmlbefore)
	else:	
		return

str1 = '網(wǎng)站地址'
html1 = getHtml(str1)
RecodeToOracle(getNumber(html1))
Geturl(html1)

上面的代碼用了遞歸運算,循環(huán)讀取彩票信息,可以一直讀取到2003年第一期,由于使用的是遞歸,在性能上不是很好,代碼非常吃內(nèi)存,電腦內(nèi)存不夠的朋友就不要嘗試了,容易死機。

以上這篇python鏈接oracle數(shù)據(jù)庫以及數(shù)據(jù)庫的增刪改查實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中的可變變量與不可變變量的使用

    Python中的可變變量與不可變變量的使用

    本文主要介紹了Python中的可變變量與不可變變量的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-03-03
  • 簡單講解Python中的字符串與字符串的輸入輸出

    簡單講解Python中的字符串與字符串的輸入輸出

    這篇文章主要介紹了Python中的字符串與字符串的輸入輸出,Python3.x版本中默認以Unicode為編碼,省去了不少麻煩,需要的朋友可以參考下
    2016-03-03
  • python獲取文件路徑、文件名、后綴名的實例

    python獲取文件路徑、文件名、后綴名的實例

    下面小編就為大家分享一篇python獲取文件路徑、文件名、后綴名的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python切割圖片的實現(xiàn)示例

    python切割圖片的實現(xiàn)示例

    本文主要介紹了python切割圖片的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • Python中字典(dict)合并的四種方法總結(jié)

    Python中字典(dict)合并的四種方法總結(jié)

    在Python中將字典(dict)進行合并操作,是一個比較常見的問題。下面這篇文章主要給大家總結(jié)介紹了關(guān)于Python中字典(dict)合并的四種方法,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-08-08
  • TensorFlow tensor的拼接實例

    TensorFlow tensor的拼接實例

    今天小編就為大家分享一篇TensorFlow tensor的拼接實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python中更優(yōu)雅的日志記錄方案詳解

    Python中更優(yōu)雅的日志記錄方案詳解

    在Python中,一般情況下我們可能直接用自帶的logging模塊來記錄日志,但logging用起來其實并不是那么好用,其實主要還是配置較為繁瑣。本文為大家介紹了Python中更優(yōu)雅的日志記錄方案,需要的可以參考一下
    2022-06-06
  • 詳解Python數(shù)據(jù)分析--Pandas知識點

    詳解Python數(shù)據(jù)分析--Pandas知識點

    這篇文章主要介紹了Python數(shù)據(jù)分析--Pandas知識點,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • python使用xmlrpc實例講解

    python使用xmlrpc實例講解

    這篇文章主要介紹了python中使用xmlrpc的實例,大家參考使用吧
    2013-12-12
  • 詳解OpenCV執(zhí)行連通分量標記的方法和分析

    詳解OpenCV執(zhí)行連通分量標記的方法和分析

    在本教程中,您將學習如何使用?OpenCV?執(zhí)行連通分量標記和分析。具體來說,我們將重點介紹?OpenCV?最常用的連通分量標記函數(shù):cv2.connectedComponentsWithStats,感興趣的可以了解一下
    2022-08-08

最新評論

新建县| 陇西县| 通道| 巫溪县| 清河县| 三台县| 进贤县| 互助| 山西省| 曲水县| 布尔津县| 郓城县| 永丰县| 广西| 焉耆| 徐闻县| 瓦房店市| 惠水县| 阳原县| 石家庄市| 略阳县| 宁晋县| 灌云县| 成武县| 嘉峪关市| 治县。| 永定县| 冀州市| 延安市| 北安市| 大悟县| 容城县| 连山| 新民市| 屏边| 体育| 合作市| 云和县| 澄迈县| 冕宁县| 时尚|