我可以将 Excel 工作表中的行加载到 BULK 的数据库表中吗

Posted

技术标签:

【中文标题】我可以将 Excel 工作表中的行加载到 BULK 的数据库表中吗【英文标题】:Can I load rows from an excel sheet to a database table in BULK 【发布时间】:2012-12-30 01:38:08 【问题描述】:

我必须INSERT 500 行到 Oracle 11g 中的一个表。我正在一个一个地使用下面的命令。我可以一次完成吗?

例如我现在在做什么-

INSERT INTO bonus SELECT ename, job, sal, comm FROM emp
   WHERE comm > sal * 0.25;
...
INSERT INTO emp (empno, ename, job, sal, comm, deptno)
   VALUES (4160, 'STURDEVIN', 'SECURITY GUARD', 2045, NULL, 30);
...
INSERT INTO dept
   VALUES (my_deptno, UPPER(my_dname), 'CHICAGO');

谢谢,

【问题讨论】:

【参考方案1】:

我会以 CSV 格式导出我的 Excel 表,并在编辑器中使用搜索和替换(使用正则表达式)将每行逗号分隔值替换为 INSERT 命令,然后运行这些命令。

【讨论】:

我们可以对任何其他 oracle 脚本做同样的事情吗? 是的。如果您提供 CSV 导出数据的示例,我可以提供我将使用的正则表达式。【参考方案2】:

下载 SQL Developer。它有一个很好的功能,可以从 Excel 电子表格插入表格。

【讨论】:

如果我们形成任何命令脚本,我正在寻找任何可以自行执行此操作的 oracle 脚本。 Arup,如果你还不熟悉的话,我建议你看看命令行实用程序 SQLLoader。虽然它不能直接从 Excel 插入,但它可以批量加载 CSV 和其他文本数据文件。请参阅this 和this 站点,了解其功能和操作的良好调查。我已经使用 SQLLoader 和 SQL Developer 将 CSV 文件从 Excel 加载到 11g 中,并且更喜欢前者用于大型导入。【参考方案3】:

查看 SQLLoader

这句话故意留白。

【讨论】:

我没有受过 SQL Loader 方面的教育,所以如果你在这里帮助我,那么我会更乐意向你学习! 网上有足够多的信息让您大开眼界。这个问题留给学生作为练习。

以上是关于我可以将 Excel 工作表中的行加载到 BULK 的数据库表中吗的主要内容,如果未能解决你的问题,请参考以下文章

如何编写执行预定义查询以将数据加载到工作表中的办公脚本?

我如何让这个 SQL 语句写入一个空的 Excel 表中,以获取除第一个之外的行?

怎样将EXCEL工作表中某列数值小于一个数的行删除,或将工作表中某列数值大于一个数的行统计到另一个工作表

如何将excel数据加载到sql server 2008表中?

将 Excel 工作表中的值列复制到网站中的 HTML 表中

分割数据表的行