繁体   English   中英

如何将 CSV 文件中的数据与 Oracle 表中的数据进行比较?

[英]How to compare the Data in CSV file with Data in the Oracle table?

在这里,我们在 Oracle 中有一张表,我将该表数据复制到 CSV 文件中。 现在我们要比较数据是否正确。

可以使用SQL Loader(搜索“ oracle sqlldr csv”以获取信息)将CSV加载到登台表中,然后使用SQL MINUS / INTERSECT类型查询比较/报告差异。 或者,使用SQLPlus假脱机(搜索“ oracle sqlplus csv spool”)将表数据提取到CSV文件中,然后在文件上使用diff。

我的建议是第一种方法,因为这将使进行数据的任何进一步处理变得更加容易。

您可以编写一个存储过程,将数据提取到csv中。 然后,您可以将此csv与现有的csv进行比较。 比较时,使用linkedhashmap存储csv,其中map的键将是数据库的主键,value是与该键对应的整行。 现在,您有两个地图,一个用于旧数据,另一个用于新数据。 您的比较将为O(1)。 存储成本很高,但检索速度更快。

如果您的 CSV 文件在 DB 目录中,您可以创建外部表以从 CSV 文件中获取数据,然后进行比较

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM