本文实例讲述了Python使用cx_Oracle模块操作Oracle数据库。分享给大家供大家参考,具体如下:
ORACLE_SID参数,这个参数是操作系统中用到的,它是描述我们要默认连接的数据库实例,对于一个机器上有多个实例的情况下,要修改后才能通过 conn / as sysdba连接,因为这里用到了默认的实例名。
简而言之,打个比方,你的名字叫小明,但是你有很多外号。你父母叫你小明,但是朋友都叫你的外号。
这里你的父母就是oracle实例,小明就是sid,service name就是你的外号。
sid用于实例区分各个数据库,service name用于外部链接。 它们可能是不同的,要注意你得到的是哪个名字,合理使用,否则远程连接别的数据库可能出错。
前言
Python自带的模块中有很多操纵文件的。我们可以把文件的数据读出来,经过处理还可以将数据写入文件中。但是对于数据的管理和分析来说,数据库还是专业一些。如果Python能和数据库结合在一起,那么就能结合两种的优势,提高效率。
工作中使用的是Oracle数据库,Python有一个模块cx_Oracle可以与Oracle相连。要使用cx_Oracle,就要先下载。
1. 下载cx_Oracle
Python一个官方网站PyPI,上面有丰富的模块。cx_Oracle就可以在PyPI中下载。打开PyPI的网址https://pypi.python.org/pypi,在里面搜索cx_Oracle,即可找到该模块,其下载地址为http://cx-oracle.sourceforge.net/。当然也可以通过其它的途径下载。
下载之后就可以使用了。
2. 使用流程
简单的使用流程如下:
①.引用模块cx_Oracle
②.连接数据库
③.获取cursor
④.使用cursor进行各种操作
⑤.关闭cursor
⑥.关闭连接
下面是一个简单的例子:
cx_Oracle.connect("用户名 / 密码@ Oracle服务器IP / Oracle的SERVICE_NAME")
获得 Oracle的SERVICE_NAME:
su - oracle #切换至oracle用户
env | grep ORACLE #查询ORACLE的环境变量
ORACLE_SID=benguo # benguo就是SERVICE_NAME
import cx_Oracle #引用模块cx_Oracleconn=cx_Oracle.connect('load/123456@localhost/ora11g') #连接数据库c=conn.cursor() #获取cursorx=c.execute('select sysdate from dual') #使用cursor进行各种操作x.fetchone()c.close() #关闭cursorconn.close() #关闭连接
例子:
#coding:utf-8import cx_Oracledef main(): conn = cx_Oracle.connect("zebra/zebra@192.168.0.113/benguo") cur =conn.cursor() r= cur.execute("select * from userinfo") print print r.fetchone()if __name__ == '__main__': main()
3. 几种用法
Python对数据库的操作主要有2方面:一个是写数据,一个是读数据。这2个方面的实现可以通过SQL语句实现,也可以通过存储过程实现。所以cx_Oracle的主要用法有:
新闻热点
疑难解答