始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Python实战之Oracle数据库操作

发布时间:  2012/8/31 17:10:47

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

[plain]
1.http://cx-Oracle.sourceforge.net/ 
2. 另外还需要Oracle的一些类库,此时需要在运行python的机器上安装Oracle Instant Client软件包,可以通过下面地址获得-
 


[plain]
1.http://www.Oracle.com/technetwork/database/features/instant-client/index-097480.html 
找到符合自己平台的包,然后安装,这里我使用的是rpm包,所以使用以下命令安装

[plain]
1.$ sudo rpm -ivh  Oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm 
装完毕后还需要设置一下环境变量,如下
[plain]
1.$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/Oracle/11.2/client/lib 
3. 创建一个简单的python文件,测试安装是否成功
[python]
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]
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]
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 () 
 


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      1
     
     
     
     

    0371-60135900
    7*24小时客服服务热线