Python連線ORACLE操作

2022-07-22 03:54:17 字數 3547 閱讀 9795

一、準備工作

1、安裝cx_oracle

執行安裝命令 

pip install cx_oracle-6.0rc1-cp35-cp35m-win_amd64.whl

2、安裝oracle,並建使用者test/test_lu

二、編寫py檔案

import cx_oracle

conn = cx_oracle.connect('test/test_lu@orcl1')

print (conn.version)

sql = 'select * from lu_test'

cr=conn.cursor()

cr.execute(sql) #執行sql語句

if cr.

print("\nthis is fetchall!")

rs = cr.fetchall() #一次返回所有結果集

print("print all:(%s)" % rs)

print("\n print by row:")

for x1 in rs:

print(x1)

print("\nthis is fetone!")

cr.execute(sql)

while (1):

rs = cr.fetchone() #一次返回一行

if rs == none: break

print(rs)

#使用引數查詢

print("\n select with parameter:")

pr =

cr.execute('select * from lu_test where id=:id or name=:tel', pr)

#這裡我們將引數作為乙個字典來處理的

rs = cr.fetchall()

print(rs)

cr.execute('select * from lu_test where id=:myid or name=:myphone', myid=2, myphone='test2')

#這裡我們直接寫引數

rs = cr.fetchall()

print(rs)

up=conn.cursor()

up.execute("update lu_test set id=4 where name ='test1'")

conn.commit();

cursor = conn.cursor()

cursor.execute("select * from lu_test")

row = cursor.fetchone()

#print (row[1][0])

#print (row[2][0])

#print (row[0][0])

print(row[1])

row1=cursor.fetchall()

for row_x in row1:

print(row_x)

cursor.close()

conn.close()

三、另外的例子
. 建立乙個簡單的python檔案,測試安裝是否成功
[python]view plain

copy

print

?import cx_oracle  

conn = cx_oracle.connect('fkong/[email protected]/orcl')    

cursor = conn.cursor ()  

cursor.execute ("select * from dual")  

row = cursor.fetchone ()  

print row[0]  

cursor.close ()  

conn.close ()  

4. 下面看乙個資料庫建表和插入操作
[python]view plain

copy

print

?import cx_oracle  

conn = cx_oracle.connect('fkong/[email protected]/orcl')    

cursor = conn.cursor ()  

cursor.execute ("create table test(id int, col1 varchar(32), col2 varchar(32), col3 varchar(32))")  

cursor.execute ("insert into test (id, col1, col2, col3)values(1, 'a', 'b', 'c')")  

cursor.execute ("insert into test (id, col1, col2, col3)values(2, 'aa', 'bb', 'cc')")  

cursor.execute ("insert into test (id, col1, col2, col3)values(3, 'aaa', 'bbb', 'ccc')")  

conn.commit()  

cursor.close ()  

conn.close ()  

5. 下面再來看看查詢,查詢通常有兩種方式:一種是使用cursor.fetchall()獲取所有查詢結果,然後再一行一行的迭代;另一種每次通過cursor.fetchone()獲取一條記錄,直到獲取的結果為空為止。看一下下面的例子:
[python]view plain

copy

print

?import cx_oracle  

conn = cx_oracle.connect('fkong/[email protected]/orcl')    

cursor = conn.cursor ()  

cursor.execute ("select * from test")  

rows = cursor.fetchall()  

for row in rows:  

print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])  

print "number of rows returned: %d" % cursor.rowcount  

cursor.execute ("select * from test")  

while (1):  

row = cursor.fetchone()  

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 ()  

通過python連線Oracle

一 安裝cx oracle pip install cx oracle即可 二 安裝instantclient windows方式 2.環境配置 import os os.environ nls lang simplified chinese china.utf8 os.environ tns ad...

Python連線mysql資料庫等常用操作

一 安裝pymysql模組 pip3 install pymysql 注 如果報錯,執行python m pip install upgrade pip 更新下pip版本 二 連線mysql等常用操作 增 刪 改 查 import pymysql 建立鏈結 conn pymysql.connect ...

oracle如何跨庫操

今天工作需要將另乙個遠端資料庫 命名為remote db 上的乙個表 table1 的資料插入當前資料庫 cuur db 的表tabel2中,為了實現這個目的,需要做以下工作 1.建立跨庫連線database link 2.進行資料庫操作。1.使用plsql建立database link file ...