Python實戰之Oracle數據庫操作

1. 要想使Python可以操作Oracle數據庫,首先需要安裝cx_Oracle包,可以通過下面的地址來獲取安裝包

[plain] view plaincopyprint?

  1. http://cx-oracle.sourceforge.net/  

2. 另外還需要oracle的一些類庫,此時需要在運行python的機器上安裝Oracle Instant Client軟件包,可以通過下面地址獲得

[plain] view plaincopyprint?

  1. http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html  

找到符合自己平臺的包,然後安裝,這裏我使用的是rpm包,所以使用以下命令安裝

[plain] view plaincopyprint?

  1. $ sudo rpm -ivh  oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm  

裝完畢後還需要設置一下環境變量,如下

[plain] view plaincopyprint?

  1. $ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client/lib  

3. 創建一個簡單的python文件,測試安裝是否成功

[python] view plaincopyprint?

  1. import cx_Oracle  

  2.   

  3. conn = cx_Oracle.connect('fkong/[email protected]/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 plaincopyprint?

  1. import cx_Oracle  

  2.   

  3. conn = cx_Oracle.connect('fkong/[email protected]/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 plaincopyprint?

  1. import cx_Oracle  

  2.   

  3. conn = cx_Oracle.connect('fkong/[email protected]/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 ()  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章