欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

1.首先,python鏈接oracle數(shù)據(jù)庫(kù)需要配置好環(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。這個(gè)是server版本號(hào),在鏈接oracle數(shù)據(jù)庫(kù)的時(shí)候還需要oracle的客戶(hù)端版,客戶(hù)端版本的下載也要參考python的版本,python是32位的客戶(hù)端下載也要用32位。

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

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

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

3.在python中輸入:

import cx_Oracle 

沒(méi)有報(bào)錯(cuò)的話(huà)說(shuō)明驅(qū)動(dòng)安裝成功。

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

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

5.數(shù)據(jù)庫(kù)查詢(xún):

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()要加括號(hào)用了
 
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ù)庫(kù)插入:

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ù)是不會(huì)插入的 
 
cursor.close() 
conn.close()

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

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

	#將查詢(xún)到的號(hào)碼入庫(kù)
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()#這里一定要提交,要不然是沒(méi)有辦法將數(shù)據(jù)入庫(kù)的
	conn.close()#記得要關(guān)閉會(huì)話(huà)
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)

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

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

相關(guān)文章

  • 使用python批量修改XML文件中圖像的depth值

    使用python批量修改XML文件中圖像的depth值

    這篇文章主要介紹了使用python批量修改XML文件中圖像的depth值,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 火車(chē)票搶票python代碼公開(kāi)揭秘!

    火車(chē)票搶票python代碼公開(kāi)揭秘!

    火車(chē)票搶票python代碼公開(kāi)揭秘!使用Python模擬搶票程序,給大家揭秘?fù)屍钡降资窃趺椿厥拢信d趣的小伙伴們可以參考一下
    2018-03-03
  • 教你如何把Python CSV 合并到多個(gè)sheet工作表

    教你如何把Python CSV 合并到多個(gè)sheet工作表

    今天我們要實(shí)現(xiàn)將多個(gè)CSV文件,合并到一個(gè)Excel文件中的,多個(gè)sheet工作表,網(wǎng)上大多方法都是將csv直接合并在一起,也不分別創(chuàng)建sheet表。接下來(lái)通過(guò)本文給大家詳細(xì)介紹下,需要的朋友參考下吧
    2021-11-11
  • python3 cookbook中常遇問(wèn)題解答

    python3 cookbook中常遇問(wèn)題解答

    本文主要介紹了python3 cookbook中常遇問(wèn)題解答,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 關(guān)于Numpy數(shù)據(jù)類(lèi)型對(duì)象(dtype)使用詳解

    關(guān)于Numpy數(shù)據(jù)類(lèi)型對(duì)象(dtype)使用詳解

    今天小編就為大家分享一篇關(guān)于Numpy數(shù)據(jù)類(lèi)型對(duì)象(dtype)使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 關(guān)于Pandas缺失值inf與nan的處理實(shí)踐

    關(guān)于Pandas缺失值inf與nan的處理實(shí)踐

    這篇文章主要介紹了關(guān)于Pandas缺失值inf與nan的處理實(shí)踐,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • python批量替換多文件字符串問(wèn)題詳解

    python批量替換多文件字符串問(wèn)題詳解

    批量替換是我們?cè)谌粘9ぷ髦薪?jīng)常會(huì)遇到的一個(gè)問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于python批量替換多文件字符串問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 基于python 開(kāi)立方的注意事項(xiàng)說(shuō)明

    基于python 開(kāi)立方的注意事項(xiàng)說(shuō)明

    這篇文章主要介紹了基于python 開(kāi)立方的注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python 裝飾器的使用示例

    python 裝飾器的使用示例

    這篇文章主要介紹了python 裝飾器的使用示例,幫助大家更好的理解和使用python裝飾器,感興趣的朋友可以了解下
    2020-10-10
  • 使用PIL(Python-Imaging)反轉(zhuǎn)圖像的顏色方法

    使用PIL(Python-Imaging)反轉(zhuǎn)圖像的顏色方法

    今天小編就為大家分享一篇使用PIL(Python-Imaging)反轉(zhuǎn)圖像的顏色方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論