当前位置: 首页 > Linux系统, Python, SQL > 正文

python连接Oracle数据库

一般情况下,如果要连接Oracle数据库都需要安装Oracle数据库客户端,但是毕竟客户端还是比较笨重的(500多M)。在客户端下一般使用sqlplus连接。好在Oracle官方提供了各种语言的Oracle数据库连接的InstantClient,所以只需要下载对应版本的InstantClient即可,相关下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

考虑到跨平台使用,而我本人有对python比较熟悉,所以打算使用python连接Oracle数据库。关于Linux的Oracle的安装可以参考这里链接:

Linux上Oracle 11g安装步骤图解

下面是简单的安装配置过程以及简单的python连接Oracle数据库的操作教程:

一、安装Oracle提供的InstantClient

Oracle官方网站下载对于版本的Oracle数据库的InstantClient。下载这里需要的三个安装文件:instantclient-basic-linux文件、instantclient-sdk-linux文件和instantclient-sqlplus-linux(注意:为保证不出现错误,建议还是安装上第三个文件sqlplus,我之前没有安装就导致了错误。注意还要对应系统版本)。这里我选的是:instantclient-basic-linux.x64-11.2.0.4.0.zipinstantclient-sdk-linux.x64-11.2.0.4.0.zipinstantclient-sqlplus-linux.x64-11.2.0.4.0.zip 。新建目录(这里我默认放在/opt/oracle/下),解压上面三个文件,它们会解压到当前目录的instantclient_11_2/下。在该目录下新建lib目录,并把当前目录下的所有文件cp(不是目录)到lib下

添加Oracle的监听配置文件:listener.ora、sqlnet.ora、tnsnames.ora。在上面的instantclient_11_2/目录下创建目录 /network/admin/,在创建的admin/目录下新建上面上三个文件(实际上这个文件是没有的,需要手动创建):

listener.ora文件:

sqlnet.ora文件:

tnsnames.ora文件:

添加环境变量。为使所有用户都能够使用,这里添加到系统的全局环境变量中。在/etc/profile中添加下面三行环境变量:

更新该文件。至此就可以使用sqlplus做连接测试了,当然服务器端也需要简单的配置下监听程序以配合客户端连接。

二、安装Python 连接Oracle的cx_Oracle

cx_oracle是一个支持Python连接Oracle数据库的扩展模块,可以访问Oracle数据库和符合Python数据库API规范。在Python官方文档上有关于cx_Oracle更多详细的说明:https://pypi.python.org/pypi/cx_Oracle 在此下载cx_Oracle的python安装源码包(在此说明下,由于大多数linux没有上面第一步安装InstantClient,所以当使用pip install 时会报错的!)。现在就可以源码安装cx_Oracle模块了:

安装一些必要的环境:

解压源码并进入其目录:

至此,cx_Oracle的Python扩展模块算是安装完成了。ps:在执行完第一步后其实就可以使用pip install cx_Oracle安装了的。另外,在安装时遇到各种问题,常见的就是下面的问题:

结合网上一大堆的解决方案,基本可以确定是由于环境变量的问题,所以还是建议大家安装上面的方法安装,基本不会出现很大问题。

三、Python对Oracle数据库的基本操作

在上面下载的cx_oracle源码包中有很多关于python操作Oracle的样例代码。下面只做简单的操作说明,基本的操作流程如下:

1.引用模块cx_Oracle

2.连接数据库

3.获取cursor

4.使用cursor进行各种操作

5.关闭cursor

6.关闭连接

下面是一个简单的例子:



这篇博文由 s0nnet 于2015年12月24日发表在 Linux系统, Python, SQL 分类下, 欢迎你在下面发表评论
如无特别说明,独木の白帆发表的文章均为原创,欢迎大家转载,转载请注明: python连接Oracle数据库 | 独木の白帆
关键字: ,

python连接Oracle数据库:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter