Python cx_Oracle问题处理
今天第一次使用Python连接Oracle数据库(多么可怕,三年码农没用Python手动连过Oracle)
首先:
pip install cx_Oracle
好,安装完成,测试代码如下:
from sqlalchemy import create_engine db_engine = create_engine('oracle://xynsx:whjyg_xynsx@10.128.85.8:1521/xyora')
conn=db_engine.connect()
result=conn.execute('SELECT * FROM PJ_CZP')
conn.close() for item in result:
print('item------------->', item)
好,从这开始,悲剧了
sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) DPI-1047: 32-bit Oracle Client library cannot be loaded:
"The specified module could not be found". See https://oracle.github.io/odpi/doc/installation.html#windows for help
(Background on this error at: http://sqlalche.me/e/4xp6)
报错了,简单看是因为我用的是32位的Oracle Client 包,它找不到了。立马从Navicat Premium安装路径中找到instantclient_11_2,在其目录下找到三个dll文件:
oci.dll,oraocci11.dll,oraociei11.dll,拷贝到Python目录下的:Lib\site-packages目录下
再次测试,再次悲剧,提示不能加载正常,好吧,我的Navicat Premium是64位的,重新下载一个instantclient_11_2的32位版本,然后三个dll文件重新拷贝。
成功,数据取到了,但是。。。。。
各种问好是什么鬼?
查看发现Oracle默认编码格式为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
找到原因,就要改正了。
修改代码如下:
# coding:utf-8 import os from sqlalchemy import create_engine os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
db_engine = create_engine('oracle://xynsx:whjyg_xynsx@10.128.85.8:1521/xyora') conn=db_engine.connect()
result=conn.execute('SELECT * FROM PJ_CZP')
conn.close()
print('res===============>', result)
for item in result:
print('item------------->', item)
好了,完全木有问题了!
Python cx_Oracle问题处理的更多相关文章
- Python cx_Oracle 安装小记
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python cx_Oracle 安装小记 SQLAlchemy 是 Pytho ...
- Python cx_oracle自动化操作oracle数据库增删改查封装,优化返回查询数据
# coding=utf-8 import cx_Oracle import os import json os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_C ...
- python cx_Oracle模块的安装和使用
$wget http://download.oracle.com/otn/linux/instantclient/10204/basic-10.2.0.4.0-linux-x86_64.zip 3 ...
- python cx_oracle 环境搭建
背景说明: 之前的环境本来是可以用的,是另外一个项目(python27)需要的时候搭建的.新项目采用的是python36,安装的cx_oracle的版本是7,而环境中的Oracle客户端是11,导致p ...
- ImportError: No module named 'cx_Oracle'问题处理过程记录,安装python cx_Oracle库
错误如下: E:\pargram>python Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [M ...
- python cx_Oracle install
Ubuntu install python-cx_Oracle 1: install alien tools . sudo apt-get install alien 2: dowload fol ...
- python cx_oracle单个表中批量插入数据
- python使用cx_Oracle连接oracle
1.使用pip命令安装cx_Oracle $ pip install cx_Oracle 2.安装oracle客户端,并添加到path 下载路径: http://www.oracle.com/tech ...
- python 连接oracle -- sqlalchemy及cx_Oracle的使用详解
python连接oracle -- sqlalchemy import cx_Oracle as orcl import pandas as pd from sqlalchemy import cre ...
随机推荐
- gulp-connect插件浏览器实时同步刷新
1.在站点路径里打开cmd控制台. 输入:cnpm install gulp-connect --save-dev 2.编辑gulpfile.js 3.控制台执行gulp任务 输入gulp serve ...
- C语言数据类型64位和32机器的区别
C语言编程需要注意的64位和32机器的区别 .数据类型特别是int相关的类型在不同位数机器的平台下长度不同.C99标准并不规定具体数据类型的长度大小,只规定级别.作下比较: 32位平台 char:1字 ...
- centos6.5 宽带连接
Centos默认不会建立本地连接,至少在虚拟机里是这样,自己新建一个就行了:1.cd /etc/sysconfig/network-scripts/2.vi ifcfg-eth0 DEVICE=eth ...
- vmware漏洞之一——转:利用一个堆溢出漏洞实现VMware虚拟机逃逸
转:https://zhuanlan.zhihu.com/p/27733895?utm_source=tuicool&utm_medium=referral 小结: vmware通过Backd ...
- (6) go 流程控制
一. if else (1)如果只有一条语句,大括号不能省略 (2)右括号 和 else 在一行 (3)支持 if 时可以定义变量 (4)if 的风格尽量不要加括号,用空格代替 (5)多分支 二.sw ...
- Java工具类-加密算法
import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.securit ...
- Vue 2.0 Application Sample
===搭建Demo=== http://blog.csdn.net/wangjiaohome/article/details/51728217 ===单页Application=== http://b ...
- 2017 icpc 西安网络赛
F. Trig Function 样例输入 2 0 2 1 2 2 样例输出 998244352 0 2 找啊找啊找数列和论文.cosnx可以用切比雪夫多项式弄成(cosx)的多项式,然后去找到了相关 ...
- 【动态规划】Codeforces Round #406 (Div. 2) C.Berzerk
有向图博弈问题. 能转移到一个必败态的就是必胜态. 能转移到的全是必胜态的就是必败态. 转移的时候可以用队列维护. 可以看这个 http://www.cnblogs.com/quintessence/ ...
- 【最大权森林/Kruskal】POJ3723-Conscription
[题目大意] 招募m+n个人每人需要花费$10000,给出一些关系,征募某个人的费用是原价-已招募人中和他亲密值的最大值,求最小费用. [思路] 人与人之间的亲密值越大,花费越少,即求出最大权森林,可 ...