使用 NodeJs 将数据从 CSV 导入 Oracle 中的表

Posted

技术标签:

【中文标题】使用 NodeJs 将数据从 CSV 导入 Oracle 中的表【英文标题】:Import data from CSV to a table in Oracle with NodeJs 【发布时间】:2021-01-14 23:16:51 【问题描述】:

我有一个疑问。 我想知道是否可以使用 NodeJs 将我在 CSV 文件中的数据(100K 数据)直接插入到 Oracle 中的表中。 找了好几种方法,但都没有找到解决办法,只能使用外部表,但问题是我必须将CSV文件保存在特定目录中。

【问题讨论】:

【参考方案1】:

我不知道 NodeJs,抱歉。

但是,从 Oracle 的角度来看,您可以使用 外部表(正如您已经提到的)。如果那个“特定目录”位于数据库服务器上,那就太好了!因为您必须创建一个指向该文件系统目录的 directory(Oracle 对象)(并向将使用该目录的用户授予读取和可能写入权限)。

如果它不在服务器上,您仍然可以使用 UNC(通用命名约定)来完成。

另一个选择是SQL*Loader,一个可以在本地PC上使用的命令行工具(你不必访问与数据库相关的“目录”)服务器以任何方式)。当然,您必须安装 SQL*Loader。它随每个 Oracle 数据库提供;如果您没有在该 PC 上安装它,您将安装 Oracle 客户端。

【讨论】:

SQL*Loader 在 Oracle Instant Client 12.2 或更高版本中也可用,请参阅 blogs.oracle.com/opal/…【参考方案2】:

有多种 Node.js 模块可以读取 CSV 文件。使用一个,然后当你有 Node.js 中的数据时,你可以使用 node-oracledb 的executeMany() 一次将多行插入到数据库中,请参阅 node-oracledb 文档Batch Statement Execution and Bulk Loading。

但是,我可能会选择早期的解决方案并使用 SQL*Loader,请参阅 https://blogs.oracle.com/opal/oracle-instant-client-122-now-has-sqlloader-and-data-pump

【讨论】:

以上是关于使用 NodeJs 将数据从 CSV 导入 Oracle 中的表的主要内容,如果未能解决你的问题,请参考以下文章

使用python将数据从csv文件插入oracle时出现错误ORA-01722:无效数字

oracle导入excel数据导致ora000001

使用java将数据从csv文件导入访问数据库

1214:使用 COPY 命令将数据从 csv 导入 Redshift 时 CSV 的报价格式无效

使用 sqoop 将数据从 CSV 导入 Avro 表的命令

MYSQL 使用 LOAD DATA INFILE 从 csv 导入数据