从外部表中读取 Excel 文件
Posted
技术标签:
【中文标题】从外部表中读取 Excel 文件【英文标题】:Read Excel Files from External Tables 【发布时间】:2017-04-16 09:14:55 【问题描述】:我的任务是创建一个模板,该模板将由业务用户填写员工信息,然后我们的程序将使用外部表将其加载到数据库中。
但是,我们的业务用户会通过添加、删除或重新排序字段来不断更改模板。
我确信使用 XLSX 而不是 CSV,这样我就可以锁定列标题,这样他们就无法删除、添加和重新排序列。 但是,当我查询外部表时,它在读取 XLSX 时显示非 ASCII 字符,因为它是二进制的。
我该怎么做?
-
有效地
锁定 CSV 文件的标题?
【问题讨论】:
【参考方案1】:您遇到的是政治问题,但您正在寻找技术解决方案。不太合适。
问题分为两部分:
-
有人认为在电子表格中收集用户输入是个好主意,但通常情况并非如此。
用户正在摆弄输入格式,这是他们不应该的。
修复是:
-
严格执行数据结构。拒绝任何不符合要求的 CSV,并让用户对其进行编辑。当他们意识到自己只是在为自己创造更多工作时,他们很快就会厌倦调整电子表格。但他们也会产生怨恨,所以考虑一下......
构建数据输入屏幕。敲出类似电子表格的网格 UI 非常简单。在 Java 中你不需要任何复杂的东西:Oracle 的 Apex 正是为这类事情而设计的。 Find out more。
但是,如果您坚持使用 Excel 作为 UI,我建议您在 Amis 网站上查看 Anton Scheffer 的优秀 PLSQL as_read_xlsx
包。 Check it out。您可能需要将外部表替换为表(可能是流水线)函数的视图。
【讨论】:
以上是关于从外部表中读取 Excel 文件的主要内容,如果未能解决你的问题,请参考以下文章
Impala 外部表读取未压缩文件但具有名称 (*.csv.gz)