资讯内容
配置python连接oracle,读取excel数据写入数据库

前提条件:本地已经安装好oracle单实例,能使用plsql developer连接,或者能使用TNS连接串远程连接到oracle集群Vth少儿编程网-https://www.pxcodes.com
读取excel写入数据库的方式有多种,这里介绍的是使用pandas写入,相对来说比较简便,不需要在读取excel后再去整理数据Vth少儿编程网-https://www.pxcodes.com
(免费学习推荐:python视频教程)Vth少儿编程网-https://www.pxcodes.com
整个过程需要分两步进行:Vth少儿编程网-https://www.pxcodes.com
一、配置python连接oracle并测试成功Vth少儿编程网-https://www.pxcodes.com
网上有不少教程,但大部分都没那么详细,并且也没有说明连接单实例和连接集群的区别,这里先介绍连接oracle单实例的方式,后续再补充连接oracle集群方式。Vth少儿编程网-https://www.pxcodes.com
版本:
window 10 64位
python 3.6.8
cx-Oracle 7.3.0Vth少儿编程网-https://www.pxcodes.com
安装流程:Vth少儿编程网-https://www.pxcodes.com
1、使用pip安装操作oracle的包:Vth少儿编程网-https://www.pxcodes.com
pip install cx_Oracle==7.3.0Vth少儿编程网-https://www.pxcodes.com
Vth少儿编程网-https://www.pxcodes.com
2、手动配置cx_Oracle临时客户端:Vth少儿编程网-https://www.pxcodes.com
注意这里电脑是64位的,使用的即时客户端也是64位的,32位的需要另外到下面的下载地址找一下Vth少儿编程网-https://www.pxcodes.com
2.1、解压下面的文件Vth少儿编程网-https://www.pxcodes.com
链接:https://pan.baidu.com/s/1ARcdK8kgNKfQsNbP5ZEbKg
提取码:lz0g
oracle即时客户端使用说明:
https://docs.oracle.com/en/database/oracle/oracle-database/19/lnoci/instant-client.html#GUID-6895DB45-97AA-4738-9959-BD677D610186
oracle即时客户端下载地址:
https://www.oracle.com/database/technologies/instant-client/downloads.htmlVth少儿编程网-https://www.pxcodes.com
Vth少儿编程网-https://www.pxcodes.com
控制面板——系统和安全——系统Vth少儿编程网-https://www.pxcodes.com
虽然导入cx_Oracle有红色波浪线,一般认为导入不成功,但这里可以先不管它,直接运行测试代码,没有报错说明没问题。
如果没有查到数据,也可能是该用户下没有emp表。Vth少儿编程网-https://www.pxcodes.com
Vth少儿编程网-https://www.pxcodes.com
二、使用pandas读取excel数据,使用sqlalchemy协助写入数据库Vth少儿编程网-https://www.pxcodes.com
1、安装sqlalchemy,pandasVth少儿编程网-https://www.pxcodes.com
这里指定pandas版本是因为**新版的pandas在读写excel的时候会有些奇怪的报错,换成1.1.4版本即可。Vth少儿编程网-https://www.pxcodes.com
pip install pandas==1.1.4pip install sqlalchemy2、准备一个excel表,命名为test.xlsx,写入以下测试数据Vth少儿编程网-https://www.pxcodes.com
Vth少儿编程网-https://www.pxcodes.com
3、测试读取并写入数据库Vth少儿编程网-https://www.pxcodes.com
#!/usr/bin/env python# -*- coding:utf-8 -*-# date: 2021/3/14# filename: excel_to_db# author: kplinimport pandas as pdfrom sqlalchemy import create_enginefrom sqlalchemy import types# conn_string='oracle+cx_oracle://user:pass@host:port/dbname'conn_string='oracle+cx_oracle://KPLIN:654321@192.168.124.6:1521/ORCL'engine = create_engine(conn_string, echo=False)df = pd.read_excel('test.xlsx')# if_exists有三个可选值,'fail':如果存在该表则报错,'append':如果存在该表则将数据追加到列尾,'replace':如果存在该表则替换# df.to_sql('test', con=engine, if_exists='replace')# 按上面这种写入方式name字段将被写成clob字段类型,# 如果我们希望把name改为varchar2类型,怎么做?# 我们可以利用sqlalchemy的types把name指定为varchar2()类型len = df.name.str.len().max()df.to_sql('test', engine, if_exists='replace', dtype={'name': types.VARCHAR(len)})rows = engine.execute("SELECT * FROM TEST").fetchall()print(rows)相关免费学习推荐:python教程(视频)Vth少儿编程网-https://www.pxcodes.com
以上就是配置python连接oracle,读取excel数据写入数据库的详细内容,更多请关注少儿编程网其它相关文章!Vth少儿编程网-https://www.pxcodes.com
- 上一篇
python如何定义数组
简介python定义数组的方法:1、直接定义【a=[[1,1],[1,1]]】;2、间接定义【a=[[0forxinrange(10)]foryinrange(10)]】;3、【b=[[0]*10]*10】初始0的二维数组。本教程操作环境:windows7系统、python3.9版,DELLG3电脑。p
- 下一篇
python return用法是什么
简介pythonreturn用法:1、返回函数的返回值;2、终止程序的运行,提前退出,例如,当函数内有错误发生时,使用return可以终止函数的运行。本教程操作环境:windows7系统、python3.9版,DELLG3电脑,该方法适用于所有品牌电脑。pythonreturn用法:(1)、返回函数的返