从外部表中读取Excel文件

时间:2017-04-16 09:14:55

标签: sql excel oracle csv external-tables

我的任务是创建一个模板,该模板将由具有员工信息的业务用户填写,然后我们的程序将使用外部表将其加载到数据库中。

但是,我们的业务用户通过添加,删除或重新排序字段来不断更改模板。

我确信使用XLSX而不是CSV,这样我就可以锁定列标题,这样他们就无法删除,添加和重新排序列。 但是,当我查询外部表时,它在读取XLSX时显示非ASCII字符,因为它在二进制文件中。

我该如何做以下任何一种?

  1. 从外部表有效读取Excel文件
  2. 锁定CSV文件的标题?

1 个答案:

答案 0 :(得分:0)

您在这里遇到的是一个政治问题,但您正在寻找技术方面的解决方案。不太适合。

问题分为两半:

  1. 有人认为在电子表格中收集用户输入是一个好主意,通常不会。
  2. 用户正在摆弄输入格式,他们不应该这样做。
  3. 修正是:

    1. 严格执行数据结构。拒绝任何不相关的CSV并让用户编辑它们。当他们意识到他们只是为自己创造更多的工作时,他们很快就会厌倦调整电子表格。但他们也会怨恨,所以考虑......
    2. 构建数据输入屏幕。敲击类似电子表格的网格用户界面非常简单。在Java中你不需要任何复杂的东西:Oracle的Apex就是出于这种情况。 Find out more
    3. 但是,如果您坚持使用Excel作为UI,我建议您查看Amis网站上的Anton Scheffer优秀的PLSQL as_read_xlsx包。 Check it out。您可能需要使用表(可能是流水线)函数替换外部表。