百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python 进行 Oracle 与 Mysql 不同数据库类型之间的数据 diff

off999 2024-10-08 06:12 19 浏览 0 评论

分享主题:如何利用Python 进行 Oracle 与 Mysql 不同数据库类型之间的数据 diff


一、适用场景

项目工作中,可能会有 A 类型数据库数据需要迁移到 B 类型的数据库中的需求。例如:假设现有一个数据库的迁移需求,是将 Oracle 数据库里的数据迁移至 Mysql 数据库中。常规的测试方法是人工去抽样检测数据进行 diff,因为数据量太大,人工不可能实现全量数据的肉眼 diff。

因此,为提高数据 diff 的正确性以及测试效率,编写测试脚本进行全量迁移数据的 diff 是十分必要的。以下内容将会着重讲解如何使用 Python 编写脚本来实现 Oracle 与 Mysql 这种不同类型数据库之间数据的 diff。


二、代码实现

1、连接oracle数据库并获取要提取的数据,并输出列表里面嵌入的字典类型的数据

 1#coding=utf-8
 2import cx_Oracle
 3import pymysql
 4
 5
 6def get_oracle():
 7    conn = cx_Oracle.connect('user', '123456', '10.7.51.34:1521/server')
 8    cursor=conn.cursor()
 9
10    sql="SELECT NAME_CODE as id ,INDUSTRY_CODE as certificate_no FROM NAME_20201129 WHERE NAME_ID=1"
11    resList1=cursor.execute(sql).fetchall()
12    # print(resList1)
13    columns=[c[0] for c in cursor.description]
14    # print(columns)
15    lastlist=[]
16    for res in resList1:
17        resluts=dict(zip(columns,res))
18        lastlist.append(resluts)
19    print(lastlist)
20    cursor.close

2、连接mysql数据库并获取要提取的数据,并输出列表里面嵌入的字典类型的数据

 1def get_mysql():
 2    db = pymysql.connect("10.7.36.42", "root", "123456", "test")
 3    cursor = db.cursor()
 4    sql="select id,certificate_no from test.ticket where id=1"
 5    try:
 6        resultList = []
 7        cursor.execute(sql)
 8        result = cursor.fetchall()
 9        columns = cursor.description
10        for val in result:
11            tempDict = {}
12            for cloNum in range(len(columns)):
13                tempDict[str(columns[cloNum][0]).upper()] = str(val[cloNum]).upper()
14            resultList.append(tempDict)
15        print(resultList)
16        return resultList
17    except:
18        print("Error: unable to fetch data")
19    cursor.close()
20    db.close()

3、Oracle 与 Mysql 数据库进行 diff,直接调用上面两个方法即可

1if __name__ == '__main__':
2    get_mysql()
3    get_oracle()

4、执行后的输出结果

1[{'ID': '82', 'CERTIFICATE_NO': '1CS004398439896'}]
2[{'ID': 'CO300006484390', 'CERTIFICATE_NO': 'CON'}]


三、总结

  • 以上代码只是做了一个 diff 的雏形演示,希望能给小伙伴起到抛砖引玉的效果,大家在参考时可以根据自己的需求去做更符合业务场景的 diff 验证。
  • 今天分享的内容实操性比较强,Python 实现代码都是干货,建议动手实操更有助于加深理解哟~

相关推荐

pip的使用及配置_pip怎么配置

要使用python必须要学会使用pip,pip的全称:packageinstallerforpython,也就是Python包管理工具,主要是对python的第三方库进行安装、更新、卸载等操作,...

Anaconda下安装pytorch_anaconda下安装tensorflow

之前的文章介绍了tensorflow-gpu的安装方法,也介绍了许多基本的工具与使用方法,具体可以看Ubuntu快速安装tensorflow2.4的gpu版本。pytorch也是一个十分流行的机器学...

Centos 7 64位安装 python3的教程

wgethttps://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz#下载指定版本软件安装包tar-xzfPython-3.10.1...

如何安装 pip 管理工具_pip安装详细步骤

如何安装pip管理工具方法一:yum方式安装Centos安装python3和python3-devel开发包>#yuminstallgcclibffi-develpy...

Python入门——从开发环境搭建到hello world

一、Python解释器安装1、在windows下步骤1、下载安装包https://www.python.org/downloads/打开后选择【Downloads】->【Windows】小编是一...

生产环境中使用的十大 Python 设计模式

在软件开发的浩瀚世界中,设计模式如同指引方向的灯塔,为我们构建稳定、高效且易于维护的系统提供了经过验证的解决方案。对于Python开发者而言,理解和掌握这些模式,更是提升代码质量、加速开发进程的关...

如何创建和管理Python虚拟环境_python怎么创建虚拟环境

在Python开发中,虚拟环境是隔离项目依赖的关键工具。下面介绍创建和管理Python虚拟环境的主流方法。一、内置工具:venv(Python3.3+推荐)venv是Python标准...

初学者入门Python的第一步——环境搭建

Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的。今天千锋武汉Python培训小编将带领Python零基础的初学者完成入门的第一步——环境搭建...

全网最简我的世界Minecraft搭建Python编程环境

这篇文章将给大家介绍一种在我的世界minecraft里搭建Python编程开发环境的操作方法。目前看起来应该是全网最简单的方法。搭建完成后,马上就可以利用python代码在我的世界自动创建很多有意思的...

Python开发中的虚拟环境管理_python3虚拟环境

Python开发中,虚拟环境管理帮助隔离项目依赖,避免不同项目之间的依赖冲突。虚拟环境的作用隔离依赖:不同项目可能需要不同版本的库,虚拟环境可以为每个项目创建独立的环境。避免全局污染:全局安装的库可...

Python内置zipfile模块:操作 ZIP 归档文件详解

一、知识导图二、知识讲解(一)zipfile模块概述zipfile模块是Python内置的用于操作ZIP归档文件的模块。它提供了创建、读取、写入、添加及列出ZIP文件的功能。(二)ZipFile类1....

Python内置模块pydoc :文档生成器和在线帮助系统详解

一、引言在Python开发中,良好的文档是提高代码可读性和可维护性的关键。pydoc是Python自带的一个强大的文档生成器和在线帮助系统,它可以根据Python模块自动生成文档,并支持多种输出格式...

Python sys模块使用教程_python system模块

1.知识导图2.sys模块概述2.1模块定义与作用sys模块是Python标准库中的一个内置模块,提供了与Python解释器及其环境交互的接口。它包含了许多与系统相关的变量和函数,可以用来控制P...

Python Logging 模块完全解读_python logging详解

私信我,回复:学习,获取免费学习资源包。Python中的logging模块可以让你跟踪代码运行时的事件,当程序崩溃时可以查看日志并且发现是什么引发了错误。Log信息有内置的层级——调试(deb...

软件测试|Python logging模块怎么使用,你会了吗?

Pythonlogging模块使用在开发和维护Python应用程序时,日志记录是一项非常重要的任务。Python提供了内置的logging模块,它可以帮助我们方便地记录应用程序的运行时信息、错误和调...

取消回复欢迎 发表评论: