利用python把EXCEL文件导入Oracle
2021-01-28 16:05:10
1点赞
一、数据准备
1、excel数据准备(包含字符串、整数、小数、科学计数法、空值)
2、oracle建表
CREATE TABLE AM_DC.FXM_TEST (CLO1 VARCHAR2(12), CLO2 NUMBER(8,0), CLO3 NUMBER(36,2), CLO4 NUMBER(36,4),CLO5 VARCHAR2(12));commit;
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
二、代码
注意:必要时需要先删除数据库中数据再导数入库。
#!/usr/bin/env python# -*- coding: utf-8 -*-import cx_Oracleimport csvimport xlrdimport osimport reclass ImportOracle(object): def inoracle(self): pass def ConnOracle(self): conn = cx_Oracle.connect('用户名', '密码', 'ip:端口/服务名') cursor = conn.cursor() # 给字符数据加上引号 fields = ['\'' i '\'' for i in self.title] # 从第一列数据开始 fields_str = ', '.join(fields[0:]) #print(fields_str) for i in self.data: print(i) # 插入引号,确保格式正确 a=[ '\'' str(b) '\'' for b in i] value = ','.join(a[0:]) # 去掉数据中的[NULL] sql = 'insert into %s values(%s)' % (self.table_name, re.sub('\[Null\] ', '', value)) # 打印生成的SQL print(sql '\n\n\n') # 执行SQL语句并提交 cursor.execute(sql) conn.commit() # 全部提交后关闭连接,释放游标 cursor.close() conn.close()class ImportOracleCsv(ImportOracle): def inoracle(self): contents=[] with open(self.filename, 'r') as f: reader = csv.reader(f) # 将科学计数现实的数字显示 for i in reader: contents.append(i) # 获取第一行为列名 title = contents[0] # 获取数据,去掉第一行 data = contents[1:] return (title, data)class ImportOracleExcel(ImportOracle): def inoracle(self): wb = xlrd.open_workbook(self.filename) #使用第一个sheet表 sheet1 = wb.sheet_by_index(0) title = sheet1.row_values(0) #获取第一行作为表头 data = [sheet1.row_values(row) for row in range(1, sheet1.nrows)] print(data) return (title, data)#导入非excel文档报错'Undefine file type'class ImportError(ImportOracle): def inoracle(self): print('Undefine file type') return 0class ChooseFactory(object): choose = {} choose['csv'] = ImportOracleCsv() choose['xlsx'] = ImportOracleExcel() choose['xls'] = ImportOracleExcel() def choosefile(self, ch): if ch in self.choose: op = self.choose[ch] else: op = ImportError() return opif __name__ == '__main__': os.chdir(r'C:\\')#改变当前工作目录到指定的路径 file_name = 'fxm_test.xlsx' table_name = 'fxm_test' #获取文件夹类型 op = file_name.split('.')[-1] factory = ChooseFactory() cal = factory.choosefile(op) cal.filename = file_name (cal.title, cal.data) = cal.inoracle() cal.table_name = table_name cal.ConnOracle()123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
三、结果
四、参考资料
EXCEL文件导入Oracle(python脚本导入)
点击阅读全文
打开CSDN,阅读体验更佳
相关推荐
更多相似内容
Python读取Excel数据,并导入到Oracle数据库
1. 连接Oracle数据库 首先安装cx_Oracle第三方库:pip installcx_Oracle,编写exec_oracle_sql.py文件,创建数据库连接,如下图所示: #encoding=gbk import cx_Oracle#查询数据库,并返回数据 def query_sql(v_sql): conn=cx_Oracle.connect('zj_dm/zj... 浏览器打开
使用python批量导入csv、excel、txt格式文件到oracle数据库(python3x)
平时在工作中,往往需要把一些文件导入到数据库中使用,或者当操作系统打不开比较大的文件(譬如几个G的文件 windows就很难打开了)的时候,也可以利用数据库,方便的读取大文件中的数据。下面简单介绍下我平时使用的方法: 1、相对较小的文件,使用python open该文件,再逐条取出数据,导入到数据库,简单粗暴,以这三种格式的文件举几个超简单的例子:excel文件: # -*- co... 浏览器打开
使用Python将Excel文件导入到Oracle数据库里
由于最近经常需要从Excel中导入数据到Oracle中,就写了个脚本专门干这个 说明: 这个脚本需要xlrd库和cx_Oracle 库才能正常运行,下载安装方法就不再多说 使用方法: insert_excel.py db=usr/passwd@db excel=all_data.xlsx sql='insert into aa values(:n1, :n2, to_number(:n 浏览器打开
python 导入excel至oracle,Python读取Excel数据并将其导入Oracle数据库,导入到最新发布
1. 连接Oracle数据库首先安装cx_Oracle第三方库:pip installcx_Oracle,编写exec_oracle_sql.py文件,创建数据库连接,如下图所示:#encoding=gbkimport cx_Oracle#查询数据库,并返回数据def query_sql(v_sql):conn=cx_Oracle.connect('zj_dm/zj_dm@10.111.30.1... 浏览器打开
python excel导入oracle数据库_【Python代替Excel】12:Python操作oracle数据库
日常工作中,如果有数据库权限,那么在oracle中提取数据、在Python中处理是比较方便的。Python也提供了一个库专门操纵数据库。今天就专门来讲讲如何在Python中操作数据库。准备工作需要工具:oracle、PL/SQL、Pythonimport cx_Oracle如果用anaconda prompt直接安装的话,可能会出现错误。最好在网站cx-Oracle下载对应版本(我下载的如下):下... 浏览器打开
赞 (0)