【Oracle】Python 连接Oracle 数据库
2023-09-14 08:57:29 时间
该包的下载地址:http://cx-oracle.sourceforge.net/
下载的时候,注意选择与操作系统和oracle版本相对应的cx_Oracle版本。
[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 "", 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 即可
相关文章
- 【C/C++学院】(24)Oracle数据库编程--管理oracle
- 【Python Oracle】使用cx_Oracle 进行数据库操作介绍
- windows下python连接oracle数据库
- Python MySQLdb模块连接操作mysql数据库实例_python
- caffe---测试模型分类结果并输出(python )
- oracle常用函数使用大全 Oracle除法(转)
- [Python] Generates permutations
- 解决error: Unable to find vcvarsall.bat【python 2.7/vs2010】
- Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
- Python使用filetype精确判断文件类型
- Python 日期和时间_python 当前日期时间_python日期格式化
- 华为OD机试 - 机房布局(Java & JS & Python)
- 华为OD机试 - 计算快递主站点(Java & JS & Python)
- python程序员都在用到5个酷毙的Python工具
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- Python之多线程:python多线程设计之同时执行多个函数命令详细攻略
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command)
- Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断
- 100天精通Python(数据分析篇)——第51天:numpy模块常用函数大全(字符串/数学/算术/统计/排序/搜索函数)
- pycharm默认的模板修改python script
- python IDLE 背景修改 IDLE (Python GUI)
- Python 远程部署利器 Fabric 模块详解
- 〖Python自动化办公篇⑳〗 - python实现邮件自动化 - 发送html邮件和带附件的邮件
- 【Python实战】 ---- python 实现 CSDN 的定时自动签到
- 【Python实战】 ---- python 自带的 venv 虚拟环境更新 pip 失败
- 【Python】3.python实现图片上传到阿里云OSS