利用python把EXCEL文件导入Oracle

2021-01-28 16:05:10

1点赞

  •  shammy

    码龄2年

  • 关注

一、数据准备
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)

相关推荐