今天第一次使用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问题处理的更多相关文章

  1. Python cx_Oracle 安装小记

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python cx_Oracle 安装小记 SQLAlchemy 是 Pytho ...

  2. Python cx_oracle自动化操作oracle数据库增删改查封装,优化返回查询数据

    # coding=utf-8 import cx_Oracle import os import json os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_C ...

  3. python cx_Oracle模块的安装和使用

      $wget http://download.oracle.com/otn/linux/instantclient/10204/basic-10.2.0.4.0-linux-x86_64.zip 3 ...

  4. python cx_oracle 环境搭建

    背景说明: 之前的环境本来是可以用的,是另外一个项目(python27)需要的时候搭建的.新项目采用的是python36,安装的cx_oracle的版本是7,而环境中的Oracle客户端是11,导致p ...

  5. 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 ...

  6. python cx_Oracle install

    Ubuntu install  python-cx_Oracle 1: install alien tools  . sudo apt-get install alien 2: dowload fol ...

  7. python cx_oracle单个表中批量插入数据

  8. python使用cx_Oracle连接oracle

    1.使用pip命令安装cx_Oracle $ pip install cx_Oracle 2.安装oracle客户端,并添加到path 下载路径: http://www.oracle.com/tech ...

  9. python 连接oracle -- sqlalchemy及cx_Oracle的使用详解

    python连接oracle -- sqlalchemy import cx_Oracle as orcl import pandas as pd from sqlalchemy import cre ...

随机推荐

  1. Linux打包压缩

    zip: 打包:zip something.zip something (目录请加 -r 参数) 解包:unzip something.zip 指定路径:-d 参数 tar: 打包:tar -zcvf ...

  2. 归并排序(MergeSort)

    原帖:http://blog.csdn.net/magicharvey/article/details/10192933 算法描述 归并排序(MergeSort)是采用分治法的一个非常典型的应用.通过 ...

  3. python 多网站采集,解决编码问题

    import chardet def get_charset(str): return chardet.detect(str)['encoding'] html = '' # bytes 字节串 ch ...

  4. PTA L2-004 这是二叉搜索树吗?-判断是否是对一棵二叉搜索树或其镜像进行前序遍历的结果 团体程序设计天梯赛-练习集

    L2-004 这是二叉搜索树吗? (25 分)   一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值: 其右子树中所有结点的键值大于等于该结 ...

  5. CodeForces 143C Help Farmer

    暴力枚举. 枚举最小的那个数字,不会超过$1000$,剩下的两个数字根号的效率枚举一下即可. #include<bits/stdc++.h> using namespace std; lo ...

  6. CNN的发展

    模型的建立过程: 1959年,Hubel & Wiesel发现动物视觉皮层中的细胞负责检测感受野(receptive fields)中的光线.论文:Receptive fields and f ...

  7. ubuntu14.04下安装爬虫工具scrapy

    scrapy是目前准备要学习的爬虫框架,其在ubuntu14.04下的安装过程如下: ubuntu14.04下默认安装了2.7的python以及setuptools,若未安装,可通过下面指令安装: s ...

  8. [NOIP2011]聪明的质检员

    [问题描述] 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有$n$个矿石,从 1 到$n$逐一编号,每个矿石都有自己的重量$w_i$以及价值$v_i$.检验矿产的流程是: 1. 给 ...

  9. [转]SpringMVC拦截器详解[附带源码分析]

      目录 前言 重要接口及类介绍 源码分析 拦截器的配置 编写自定义的拦截器 总结 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:ht ...

  10. iOS获取已安装的app列表(私有库)+ 通过包名打开应用

    1.获取已安装的app列表 - (void)touss { Class lsawsc = objc_getClass("LSApplicationWorkspace"); NSOb ...