Python連接ORACLE操作


一、准備工作

1、安裝cx_Oracle
ttps://pypi.python.org/pypi下查找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 = {'id': 1, 'tel': 'test1'}

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?
  1. import cx_Oracle  
  2.   
  3. conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')    
  4. cursor = conn.cursor ()  
  5. cursor.execute ("select * from dual")  
  6. row = cursor.fetchone ()  
  7. print row[0]  
  8.   
  9. cursor.close ()  
  10. conn.close ()  
4. 下面看一個數據庫建表和插入操作
[python]  view plain  copy
 
 print?
  1. import cx_Oracle  
  2.   
  3. conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')    
  4. cursor = conn.cursor ()  
  5.   
  6. cursor.execute ("CREATE TABLE TEST(ID INT, COL1 VARCHAR(32), COL2 VARCHAR(32), COL3 VARCHAR(32))")  
  7.   
  8. cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(1, 'a', 'b', 'c')")  
  9. cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(2, 'aa', 'bb', 'cc')")  
  10. cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(3, 'aaa', 'bbb', 'ccc')")  
  11. conn.commit()  
  12.   
  13. cursor.close ()  
  14. conn.close ()  
5. 下面再來看看查詢,查詢通常有兩種方式:一種是使用cursor.fetchall()獲取所有查詢結果,然后再一行一行的迭代;另一種每次通過cursor.fetchone()獲取一條記錄,直到獲取的結果為空為止。看一下下面的例子:
[python]  view plain  copy
 
 print?
  1. import cx_Oracle  
  2.   
  3. conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')    
  4. cursor = conn.cursor ()  
  5.   
  6. cursor.execute ("SELECT * FROM TEST")  
  7. rows = cursor.fetchall()  
  8. for row in rows:  
  9.     print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])  
  10.   
  11. print "Number of rows returned: %d" % cursor.rowcount  
  12.   
  13. cursor.execute ("SELECT * FROM TEST")  
  14. while (1):  
  15.     row = cursor.fetchone()  
  16.     if row == None:  
  17.         break  
  18.     print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])  
  19.       
  20. print "Number of rows returned: %d" % cursor.rowcount  
  21.   
  22. cursor.close ()  
  23. conn.close ()  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM