python导入oracle数据,Python连接oracle数据库
先决条件:oracle的单个实例已经在本地安装,并且可以通过plsql developer连接,或者通过TNS连接字符串远程连接到oracle集群。
读取excel和写入数据库的方法有很多。这里用熊猫来写,比较简单,看完excel不需要整理数据。
(免费学习推荐:python视频教程)
整个过程需要分两步进行:
一、配置python连接oracle并测试成功
网上有很多教程,但是大部分都没有这么详细,也没有解释连接单个实例和连接集群的区别。这里先介绍oracle单个实例的连接方式,再补充oracle集群的连接方式。
版本:
Window 10 64位
python 3.6.8
cx-Oracle 7.3.0
安装过程:
1、使用pip安装操作oracle的包:
pip安装cx_Oracle==7.3.0
2、手动配置cx_Oracle临时客户端:
注意这里的电脑是64位的,用的即时客户端也是64位的。对于32位,请转到下面的下载地址。
2.1、解压下面的文件
链接:https://pan.baidu.com/s/1ARcdK8kgNKfQsNbP5ZEbKg
捡码:lz0g
Oracle即时客户端说明:
https://docs . Oracle.com/en/database/Oracle/Oracle-database/19/lno ci/instant-client . html # GUID-6895 db45-97AA-4738-9959-BD 677d 610186
Oracle即时客户端下载地址:
https://www . Oracle.com/database/technologies/instant-client/downloads . html
2.2、放置到D盘某个位置,例如:
00-1010控制面板3354系统和安全3354系统
00-1010
2.3、配置环境变量
虽然cx_Oracle的导入有红色波浪线,一般认为导入不成功,但是这里你可以直接忽略它,直接运行测试代码。没有错误表示没问题。如果没有找到数据,则该用户下可能没有emp表。
Import cx_Oracleimport os#设置了环境编码方法,可以解决数据库os中中文乱码读取的问题。Environ [nls _ lang]=简体中文_ China.utf8 #用户名/密码@ ip3360端口/实例名conn=CX _ Oracle . connect( kplin/12 SSS 3456 @ 192 . 168 . 124.
sql=select * from emp
游标. execute(sql)
ret=cursor.fetchall()
打印(ret)
# cursor.commit()Exception as e :
最终打印:
cursor.close()
二、使用pandas读取excel数据,使用sqlalchemy协助写入数据库
1、安装sqlalchemy,pandas
这里指定熊猫版本是因为熊猫最新版本在读写excel时会给出一些奇怪的错误。换成1.1.4版本就行了。
pip安装pandas==1.1.4pip安装sqlalchemy2、准备一个excel表,命名为test.xlsx,写入以下测试数据
3、测试读取并写入数据库
#!/usr/bin/env python #-*-coding : utf-8-*-# date : 2021/3/14 # filename : excel _ to _ db # author : kpli从sqlalchemy import create _ engine from sqlalchemy import types # conn _ string= Oracle CX _ Oracle ://user : pass @ host 3360 port/dbname conn _ string= replace # df.to _ SQL (test ,con=engine,If _ exists= replace )# name字段会按照上面的写法写成clob字段类型,#如果我们想把名称改成varchar2类型,应该怎么做? #我们可以将名称指定为varchar 2()types len=df . name . str . len()。max () df.to _ SQL (test ,engine,if _ exists= replace ,dtype={name:类型。VARCHAR(len)})rows=engine . execute( SELECT * FROM TEST )。相关免费学习推荐:python教程(视频)
以上是配置python连接oracle,读取excel数据,写入数据库的细节。其他相关文章请多关注盛行的IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。