From: http://space.itpub.net/22664653/viewspace-711728

Python 连接Oracle 数据库,需要使用cx_Oracle 包。
1 下载cx_Oracle
该包的下载地址:http://cx-oracle.sourceforge.net/
下载的时候,注意选择与操作系统和oracle版本相对应的cx_Oracle版本。
2 安装
[root@rac3 python]# rpm -ivh cx_Oracle-5.1.1-11g-py24-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:cx_Oracle              ########################################### [100%]
3 测试:   
oracle@rac3:/home/oracle/python>cat test.py 
import cx_Oracle 
username = "yang" 
userpwd = "yang" 
host = "127.0.0.1" 
port = 1523 
dbname = "yangdb" 
dsn=cx_Oracle.makedsn(host, port, dbname) 
connection=cx_Oracle.connect(username, userpwd, dsn) 
cursor = connection.cursor() 
sql = "select * from tab" 
cursor.execute(sql) 
result = cursor.fetchall() 
count = cursor.rowcount 
print "=====================" 
print "Total:", count 
print "=====================" 
for row in result: 
        print row 
cursor.close() 
connection.close()
测试结果:
oracle@rac3:/home/oracle/python>python test.py 
=====================
Total: 9
=====================
('BIG_TABLE', 'TABLE', None)
('BIN$sgD3dAkmWHfgQPoK8Qcq3Q==$0', 'TABLE', None)
('BIND', 'TABLE', None)
('IM_SMS_ADD_FRIEND', 'TABLE', None)
('PARALTAB', 'TABLE', None)
('T1', 'TABLE', None)
('T2', 'TABLE', None)
('T3', 'TABLE', None)
('T4', 'TABLE', None)
遇到的问题:
1 要在oracle 用户才能执行import cx_Oracle
[root@rac3 ~]# python
Python 2.4.3 (#1, Jan 21 2009, 01:11:33) 
[GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory
>>>
如果在oracle 也遇到 ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory
要查看.bash_profile 文件:和环境变量 LD_LIBRARY_PATH有关,一定要设置为:
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib;export LD_LIBRARY_PATH
2 ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
oracle@rac3:/home/oracle/python>python test.py 
Traceback (most recent call last):
  File "test.py", line 10, in ?
    connection=cx_Oracle.connect(username, userpwd, dsn) 
cx_Oracle.DatabaseError: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
oracle@rac3:/opt/oracle/11.2.0/alifpre/network/admin>cat tnsnames.ora 
# tnsnames.ora Network Configuration File: /opt/oracle/11.2.0/alifpre/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
yangdb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.250.7.241 )(PORT = 1523))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = yangdb)
    )
  )
listener.ora 文件中
SID_LIST_LISTENER =
      (SID_LIST =
         (SID_DESC =
           (SID_NAME = PLSExtProc)
             (ORACLE_HOME = /opt/oracle/11.2.0/alifpre)
           (PROGRAM = extproc)
         )
        (SID_DESC =
          (GLOBAL_DBNAME = yang)
           (ORACLE_HOME = /opt/oracle/11.2.0/alifpre)
          (SID_NAME =yangdb)
         )
     )
  (GLOBAL_DBNAME = yang)与tnsnams.ora 文件中的tns连接名不一致导致,修改为yangdb,重新启动监听或者lsnrclt reload 即可

【Oracle】Python 连接Oracle 数据库相关推荐

  1. Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法

    Python 连接 Oracle 数据库 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤ 检测是否有 or ...

  2. Python连接Oracle数据库,以字典形式返回结果

    众所周知,Python连接Oracle数据库,一般都使用cx_Oracle这个包. 但关键是cx_Oracle这个包,返回的结果,都是元组或者列表. 如以下代码: 1 import cx_Oracle ...

  3. python连接本机oracle数据库吗,用Python连接Oracle数据库容易吗?

    ello,大家好!本次介绍的内容是如何使用Python连接Oracle数据库!看起来很简单,但实际上就是这么简单.学习本节内容后,相信老铁们能用Python撸起你们那庞大的Oracle数据库了.Wel ...

  4. python连接oracle数据库 插入clob类型数据

    python连接oracle数据库 插入clob类型数据 连接数据库 import cx_Oracle as cx #导入模块 con = cx.connect('root', 'root123', ...

  5. python连接oracle数据库_Python连接oracle数据库 例子一

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

  6. python连接oracle

    python连接oracle需要先根据oracle的版本到网上下载对应版本的instantclient,这个就自己去网上下载了,下载完了解压到某个文件夹即可. 然后在脚本的最前面加上这句:os.env ...

  7. python连接oracle报错dpi 1047_python连接Oracle的方式以及过程中遇到的问题

    一.库连接步骤 1.下载cx_Oracle模块 下载步骤 工具 pycharm :File--->右键setting--->找到Project Interpreter  -----> ...

  8. python oracle 工具类,python连接Oracle工具类

    上代码: # -*- coding:utf-8 -*- import cx_Oracle import pandas as pd class ORACLE(object): def __init__( ...

  9. python连接oracle报错DPI-1047

    pip install cx_Oracle python连接时报错: 报错信息:cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Or ...

最新文章

  1. 【android-tips】如何在android应用中插入百度广告(附源码)
  2. hdmi光端机运用于多媒体信息发布系统案例介绍
  3. 全排列及相关扩展算法(六)——全排列最蛋疼的算法:邻位对换法
  4. 利器:服务器与CST时间误差8小时的修复方法——timedatectl
  5. C语言答案杨崇艳,贯彻落实科学发展观,走新型工业化道路的要求是()。A.科技含量高B.经济效益好...
  6. win11打开控制面板闪退怎么办 Windows11控制面板闪退的解决方法
  7. bzoj 1295: [SCOI2009]最长距离(SPFA)
  8. x265将yuv转h265(七)
  9. cloudera-agent启动File not found : /usr/sbin/cmf-agent解决办法(图文详解)
  10. Ubuntu MPEG-4 AAC 与 H.264 解码器安装
  11. 固高GTS控制卡功能介绍2:NewWatch功能
  12. 32形容词/副词的原级比较
  13. PMS进化论:回顾过去才能更好地看向未来!
  14. java 判断手机运营商_如何用java判断手机号运营商?
  15. 接口测试常见面试题(含答案)
  16. VOS中客户在设置服务器防火墙时需要打开哪些 VOS 应用端口
  17. 【Java】一文秒懂http请求获取FlexManager平台FBox盒子信息
  18. MD5工具类,提供字符串MD5加密(校验)、文件MD5值获取(校验)功能
  19. GPU加速原理浅析及代码实现
  20. 【python爬虫专项(19)】blibli弹幕数据爬取(以全站搜索蔡徐坤的视频为例)

热门文章

  1. 第三讲系统的基本操作
  2. 山师计算机专业研究生怎么样,山东师范大学有计算机专业硕士吗?
  3. 铁拳nat映射_铁拳如何重塑我的数据可视化设计流程
  4. 使用final类的作用是什么?
  5. 分布与并行计算—生产者消费者模型RabbitMQ(Java)
  6. leetcode 674. 最长连续递增序列
  7. python 入门程序_非Python程序员的Python速成课程-如何快速入门
  8. nginx mozilla_我发现Mozilla的私人浏览模式存在重大缺陷。
  9. Linux ReviewBoard安装与配置
  10. Oracle 10.2.0.5升级至11.2.0.4