从多个excel文件导入数据Oracle PL-SQL

从多个excel文件导入数据Oracle PL-SQL,oracle,plsql,oracle-sqldeveloper,Oracle,Plsql,Oracle Sqldeveloper,我希望将数据从excel导入oracle表。 但我的要求是我有多个excel文件,每个文件包含多张工作表。 但它们都有相同的结构 请让我知道执行相同操作的合适方式。 可以使用UTL\u文件实用性执行此提取。我不知道如何直接从Excel执行此操作 实际上,我是这样做的,但是使用TOAD的“importtabledata”选项手动操作。我也不知道幕后有什么技巧,只能猜测: -它首先临时保存为CSV,然后加载 -Excel文件是XML,所以TOAD可以处理这样的数据 我如何实现自动化 将每个工作表

我希望将数据从excel导入oracle表。 但我的要求是我有多个excel文件,每个文件包含多张工作表。 但它们都有相同的结构

请让我知道执行相同操作的合适方式。
可以使用UTL\u文件实用性执行此提取。

我不知道如何直接从Excel执行此操作

实际上,我是这样做的,但是使用TOAD的“importtabledata”选项手动操作。我也不知道幕后有什么技巧,只能猜测: -它首先临时保存为CSV,然后加载 -Excel文件是XML,所以TOAD可以处理这样的数据


我如何实现自动化

  • 将每个工作表保存到其自己的CSV文件中
    • 对我来说也是体力活。也许有人——更了解Excel——可以编写VBA脚本或类似的东西。另一方面,也许可以使用这样的脚本将数据直接插入Oracle表中。。。不知道,对不起
  • 编写SQL加载程序控制文件
  • 逐个文件加载,重复使用相同的控制文件
    • 如何实现自动化?使用SQL加载器命令行
      数据
      参数
    • 如何动态地改变它?创建一个包装器脚本(在MS Windows上,将是一个.BAT脚本),它将在循环中迭代所有这些CSV文件,并在每次迭代中向SQL Loader提供新数据
SQL加载器与
UTL\u文件
(您提到)相比的优势在于

  • 它在本地工作(在您自己的PC上;当然,您必须安装它(如果您还没有)。它与任何Oracle数据库(甚至XE,Express Edition)一起提供,或者包含在Oracle客户端软件的实用程序下),而
  • 对于
    UTL_文件
    ,您必须与DBA联系,以便访问目录(通常位于数据库服务器上),然后命名包将使用该目录

如果Excel文件是XLSX,则可以编写PL/SQL包来处理这些文件;这些文件是用ZIP压缩的,inide是XML文件的树结构。XML文件可以使用UTL_文件读取,也可以使用DBMS_LOB读取