Python实战之Oracle数据库操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实战之Oracle数据库操作相关的知识,希望对你有一定的参考价值。

1. 要想使Python可以操作Oracle数据库,首先需要安装cx_Oracle包,可以通过下面的地址来获取安装包

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

2. 另外还需要oracle的一些类库,此时需要在运行python的机器上安装Oracle Instant Client软件包,可以通过下面地址获得

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

找到符合自己平台的包,然后安装,这里我使用的是rpm包,所以使用以下命令安装

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

装完毕后还需要设置一下环境变量,如下

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

3. 创建一个简单的python文件,测试安装是否成功

[python] view plain copy
  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 plain copy
  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 plain copy
    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 () 

以上是关于Python实战之Oracle数据库操作的主要内容,如果未能解决你的问题,请参考以下文章

Python应用实战系列-如何通过Python来操作Oracle数据库:cx_Oracle

Oracle数据库12cR2(项目实战之二):Linux系统安装Oracle12.2

Oracle12.2 RAC集群管理之增加删除节点_Oracle12cR2视频教程(项目实战之六)

Oracle12.2 RAC集群管理之IP地址修改_Oracle12cR2视频教程(项目实战之七)

python之Oracle操作(cx_Oracle)

Oracle数据库12cR2(项目实战之一):在Windows上安装Oracle12.2