1.环境设置

[root@oracle ~]# cat /etc/redhat-release

CentOS release 6.9 (Final)

[root@oracle ~]# python -V

Python 2.6.6

版本:Oracle 12c

2.前提:安装cx_Oracle模块依赖包

由于使用Python连接Oracle,所以需要下载oracle客户端包

官网:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html?ssSourceSiteId=otncn

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

1
[root@oracle ~]# rpm - ivh oracle-instantclient12.1-*

3.设置环境变量

[root@oracle ~]# cat ~/.bash_profile

1
2
export /usr/lib/oracle/12.1/client64/
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib

4.安装cx_Oracle模块

官网:https://pypi.python.org/pypi/cx_Oracle

cx_Oracle-6.2.1.tar.gz

1
2
[root@oracle ~]# tar -zxvf cx_Oracle-6.2.1.tar.gz 
[root@oracle cx_Oracle-6.2.1]# python setup.py install

可能会遇到报错

error: command 'gcc' failed with exit status 1

解决方法:

yum install python-devel

yum install libevent-devel

5.查看是否可以导入cx_Oracle模块

[root@oracle ~]# python

Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import cx_Oracle

>>>  #无报错说明成功

6.编写Python连接oracle数据库脚本(oracle用户,因为我这里都是用oracle用户权限安装的)

[oracle@oracle ~]$ cat py_oracle.py

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import cx_Oracle  #导入模块
db=cx_Oracle.connect('system/oracle@localhost:1521/ORCL')  #连接user/passwd@host:端口/instance
cursor = db.cursor() #创建游标对象
cursor.execute('select sysdate from dual')  #执行命令
data = cursor.fetchone() #返回值
print('Database time:%s' % data)  打印输出
cursor.close()  #关闭游标对象
db.close()  #关闭数据库

7.执行脚本

[oracle@oracle ~]$ python py_oracle.py

1
Database time:2018-03-20 20:47:59

Python 连接 Oracle数据库的更多相关文章

  1. Python 连接Oracle数据库

    连接:python操作oracle数据库  python——连接Oracle数据库 python模块:cx_Oracle, DBUtil 大概步骤: 1. 下载模块 cx_Oracle (注意版本) ...

  2. 【python】python连接Oracle数据库

    python连接Oracle数据库 查看Oracle版本 select * from v$version 下载对应版本的InstantClient 下载网址 InstantClient 1.解压Ins ...

  3. python——连接Oracle数据库

    前言 Python自带的模块中有很多操纵文件的.我们可以把文件的数据读出来,经过处理还可以将数据写入文件中.但是对于数据的管理和分析来说,数据库还是专业一些.如果Python能和数据库结合在一起,那么 ...

  4. Python连接oracle数据库 例子一

    step1:下载cx_Oracle模块,cmd--pip install cx_Oracle step2: 1 import cx_Oracle #引用模块cx_Oracle 2 conn=cx_Or ...

  5. python连接oracle数据库报错"DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "解决方案

    操作系统,python3.5, oracle_11, 均为64位:plsql 正常连接. 也顺利安装了cx_oracle 6.3,但是python进行连接的时候就会报错"DatabaseEr ...

  6. python 连接oracle 数据库

    我们在测试中可能需要对oracle 数据库进行操纵,比如这样一个场景,在往oracle 里面插数据的同时,另一个工具从里面读,如何能保证读出来的数据是有顺序的,即:先插入进去的先读出来,根据这个场景们 ...

  7. windows下python连接oracle数据库

    1.首先安装cx_Oracle包2.解压instantclient-basic-windows.x64-11.2.0.4.0.zip到c:\oracle3.拷贝instantclient_11_2下所 ...

  8. python 连接oracle数据库:cx_Oracle

    注意:64位操作系统必须安装64位oracle客户端,否则会连接报错 安装第三方库:cx_Oracle 一.连接数据库的三种方式: 1.cx_Oracle.connect('账号/密码@ip:端口/数 ...

  9. Python连接Oracle数据库

    今天使用Python连接数据库,连接没有问题,就是中文显示乱码,网上找了很多解决方案, 最后选择使用这个 #!/usr/bin/env python # -*- coding:utf-8 -*- #A ...

随机推荐

  1. 关于ajax跨域的一些说说

    跨域:跨当然是跨过去,域当然是别的服务器 (说白点就是去别服务器上取东西) 只要协议.域名.端口有任何一个不同,都被当作是不同的域 ajax 是一种请求响应无刷新技术(xmlhttqrequest对象 ...

  2. C#读取EXECL关键代码

    string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extend ...

  3. Javascript中暂停功能的实现

    <script language="javascript"> /*Javascript中暂停功能的实现 Javascript本身没有暂停功能(sleep不能使用)同时 ...

  4. 006杰信—factory更新数据

    本博客的资源全部来源于传智播客. factroy更新的执行流程和003杰信-在jsp页面输入数据,然后在oracle数据库中插入factory数据,当字段允许为空时要特殊处理差不多, 1.在jFact ...

  5. DFS应用——遍历有向图+判断有向图是否有圈

    [0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 "DFS应用--遍历有向图+判断有向图是否有圈" 的idea 并用源代码加以实现 : ...

  6. php -- instanceof、class_exists、insterface_exists、method_exists、get_class、get_parent_class

    class_exists:类是否存在 在创建对象之前判断类是否存在,如果不存在就应该先加载类,再创建对象,容错. interface_exists:接口是否存在 method_exists:方法是否存 ...

  7. php -- 魔术方法 之 对象输出 : __toString()

    对象输出:__toString() 当一个对象被当做字符串进行输出时(echo,print),会调用__toString()方法 <?php //输出对象 class Person{ //属性 ...

  8. VS2008链接错误fatal error LNK1104: cannot open file '*.obj'

    This particular issue is caused by specifying a dependency to a lib file that had spaces in its path ...

  9. JavaScript 二、eval 和 with 函数

    /* * ========================================================= * * JavaScript 词法欺骗 * * 1.欺骗词法作用域,会导致 ...

  10. Java Print 打印

    Java 原生的API中有Print,使用Print可以操作打印机进行打印操作,获取打印机属性,下面是代码 打印程序(静默打印) package com.boci.PrintPDF; import j ...