Python3安装cx_Oracle连接oracle数据库实操总结
弄清版本,最重要!!!
首先安装配置时,必须把握一个点,就是版本一致!包括:系统版本,python版本,oracle客户端的版本,cx_Oracle的版本,然后安装配置就容易了!
如果已经安装Python,查看你安装的Python版本是多少位的:

当然,你64位的操作系统也是可以安装32位的开发环境。反之则不行!切记!
oracle客户端的版本,cx_Oracle的版本,要与Python版本和位数对应:
比如:
Python版本:Python3.4.3 32位;
cx_Oracle的版本:cx_Oracle-5.2-11g.win32-py3.4
oracle客户端的版本:instantclient-basic-win32-11.2.0.1.0;
这里还有三个注意点:
版本位数对应,都是32位;
cx_Oracle和python版本对应,都是3.4;
cx_Oracle和instantclient版本对应,都是11;
、
再次说明(别嫌我啰嗦,弄明白很重要):比如,我的系统是win7 64位,python版本却是32位的,所以下载安装的Oracle Client 也是32位 11g的,相应的cx_Oracle 也要是32位11g的,当然也要注意python的版,本python2.X还是python3.X,也要下相应的版本的。
这一点弄明白之后,我们就要准备安装了。
cx_Oracle安装
下载地址:https://pypi.python.org/pypi/cx_Oracle/5.3 下载低版本cx_Oracle版本
我是下载cx_Oracle-5.3-11g.win32-py3.6.exe,下载后直接双击安装,就ok了。
不建议直接使用pip install cx_Oracle命令安装,因为版本问题容易报错。cx_Oracle 报错:cx_Oracle.DatabaseError: DPI-1050: Oracle Client library must be at version 11.2,这就是cx_Oracle版本太高引起的。
oracle 客户端
下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
把下载的文件解压,复制oci,oraocci11,oraociei11的3个DLL粘贴到你的PY目录的Libs/site-packages文件夹下面。
python3.4连接oracle数据库测试代码:
import cx_Oracle
conn = cx_Oracle.connect('用户名/密码@主机ip地址/orcl') #用自己的实际数据库用户名、密码、主机ip地址 替换即可
curs=conn.cursor()
sql='SELECT * FROM 。。。' #sql语句
rr=curs.execute (sql)
row=curs.fetchone()
print(row[0])
curs.close()
conn.close()
配一个ORACLE_HOME的环境变量,指向Instant Client的目录(如果你到这已经可以成功连接orcale数据库了,环境变量这一步不执行也可以,视情况而定):
到自己想要放的路径下,我的是C:\instantclient-basic-win32-11.2.0.1.0\instantclient_11_2
然后是配置环境变量:右键计算机——属性——高级系统设置——环境变量——系统变量——新建
变量:ORACLE_HOME 值:Q:\OracleClient
变量:TNS_ADMIN 值:Q:\OracleClient
编辑path用';'隔开加一个 Q:\OracleClient
安装结束,整个安装过程非常简单,也是我自己多次失败的总结,希望对你有帮助!
补充一点:
oracle数据库服务端版本如果是64位,你的机子上安装的客户端位数是32还是64,都不影响使用。
本机上不需要安装oracle服务端。展
另推荐很好的视频学习网站:http://www.51zxw.net/study.asp?vip=19591611
Python3安装cx_Oracle连接oracle数据库实操总结的更多相关文章
- sql/pl 安装并连接Oracle数据库
1,首先,先下载pl/sql devloper 安装包.下载对应版本的安装包 下载地址 https://www.allroundautomations.com/bodyplsqldevreg.htm ...
- python使用cx_oracle连接oracle数据库
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html---下载instantclient-basic-linux.x ...
- 在PYTHON中,用cx_Oracle连接ORACLE数据库简单示例
一,在安装的时候,参数有点不一样: python setup.py build install 二,连接数据库,有两种方式,DSN和TNSNAMES方式: #dsn = orcl.makedsn(se ...
- Python3 连接 Oracle 数据库
Python3 连接 Oracle 数据库 需要导出一些稍微复杂的数据,用Python处理很方便 环境 Win10 Python 3.7.0 Oracle 11g 安装依赖 安装 cx_Oracle ...
- [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下
一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...
- 通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库
通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库. 首先下载安装包在Oralce官方网站上下载Oracle Instantclient Basic package.地址如 ...
- .net远程连接oracle数据库不用安装oracle客户端
asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...
- .net远程连接oracle数据库不用安装oracle客户端的方法
.net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...
- 无需安装Oracle Client连接Oracle数据库
介绍 当我们采用 ODP.NET 检索Oracle 数据库的时候,Oracle客户端是必须安装.假如当时电脑上没有安装Oracle客户端,就不能这么用了,这时候Oracle.ManagedDataAc ...
随机推荐
- Oracle 11g 审计跟踪管理
在Oracle11g之前,oracle数据库自带的审计功能是关闭的,考虑到性能和审计管理的复杂性,用户一般不打开审计功能.如果有审计要求,DBA会采用trigger来实现对DDL审计的方法来折中.例如 ...
- AndroidStudio0.5.5发布
Google%E5%9C%A8%E5%BC%80%E6%BA%90%E4%B8%8A%E7%9A%84%E8%B4%A1%E7%8C%AE http://music.baidu.com/songlis ...
- 多个jar包的合并
1.将所有jar文件复制至某临时目录中,通过jar命令解压得到所有的.class文件 > jar -xvf xx.jar xx.jar必须为具体的jar,不能为*.jar,会报FileNotFo ...
- 玩adb和fastboot
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380143fd3d1027fa3c215cc790a1b18 ...
- [C/C++] “箭头(->)”和“点号(.)”的区别
转自:http://blog.csdn.net/gyymen/article/details/4962873 首先介绍一下C++中的结构.对于一个结构: struct MyStruct { int m ...
- Hibernate常用方法之_插入
1.使用session的save方法进行插入 public void saveUser(User user){ Session session = null; Transaction transact ...
- oracle视图就是封装了一条写好的sql语句 可通过视图修改表结构 ; oracle需要手动创建序列
create sequence student_sid; --创建序列 oracle只能通过手动方式创建序列
- 【bzoj2141】排队 分块+树状数组
题目描述 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵.你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家乐和和.红星幼儿园的小朋友们排起了长长地队伍,准备吃果果.不过因为小朋友们的身高有所区别, ...
- sql in()批量操作
//批量修改 update 表A set A.name='n' where A.id in(字符串); //批量删除 delete from 表名称 where 列名称 ...
- Python 日期时间相关
#calendar日历模块 import calendar #calendar() 获取一年日历 result = calendar.calendar(2018,w = 2,l = 1,c = 6,m ...