构建应用程序以通过Apex将CSV上载到Oracle 12c数据库

时间:2019-08-07 19:07:38

标签: oracle-apex

有人要求我在Oracle Apex中创建一个应用程序,该应用程序允许我删除CSV文件。该文件包含我所在地区所有活跃医生的列表以及相关信息。我不知道从哪里开始!要求:

-将CSV文件拖放到顶点后,删除不必要的列 -在每个字段中编辑数据,即,如果电话号码> 7个字符并以1开头,请删除1。或从列中删除所有特殊字符。 -CSV包含每个专业的医生,我只想将特定专业上传到数据库表。

我从Uni那里拥有少量SQL经验,并且我知道一些HTML和CSS,但除此之外,我迷失了方向。请帮忙!

开始有关Oracle-Apex的教程。在开发环境中创建了上传向导

  1. 用户将CSV文件拖放到顶点
  2. Apex编辑列以删除不必要的字符
  3. 仅从CSV文件上传特定列
  4. 仅当“专长”列=专长时添加数据
  5. 不添加冗余数据(医师已经在表中,什么也不做)
  6. 产生的报告显示添加到表中的所有新医师

1 个答案:

答案 0 :(得分:1)

嗯,您陷入了严重的麻烦,因为您必须使用一点都不知道的工具来完成某些工作,而该工具对SQL语言的了解有限。是的,据说的Apex易于使用,但是……至少您必须了解一些。否则,就像你说的那样,你迷路了。

看看以下内容是否有帮助。

  • 有CSV文件
  • 在数据库中创建一个表;其说明应与CSV文件匹配。提及它包含的所有列。注意数据类型,列长等
    • 此表将是“临时”表-您每天都会使用该表从CSV文件中加载数据:首先,您将删除其中包含的所有内容,然后加载新行
  • 使用Apex“创建页面”向导,创建“数据加载”过程。请遵循说明(和/或阅读有关此说明的文档)。完成后,您的Apex应用程序中将有4个新页面
  • 运行它时,应该可以将CSV文件加载到该临时表中

这是第一步-成功将数据加载到数据库中。现在,第二阶段:解决问题。

  • 在数据库中创建另一个表;它将会是“目标”表,并且应该仅包含您需要的数据(即 temporary 表的子集)。如果这样的表已经存在,则不必创建一个新表。
  • 创建一个存储过程。它将从 temporary 表中读取数据并编辑您提到的所有内容(删除特殊字符,删除开头的“ 1”,...)
    • 由于您必须跳过目标表中已经存在的医生,因此请使用NOT INNOT EXISTS
  • 然后将“干净”数据插入 target

该存储过程将在Apex加载过程完成后执行;一种简单的方法是在最后一页上创建一个按钮,该按钮将在按下时调用该过程。

最后阶段是报告:

  • 由于您需要向新医生展示,因此请考虑在目标表中添加一列(将列为时间戳记(如果每天执行一次,则DATE就足够了)或{{ 1}}(在同一过程中插入的所有行将共享相同的值),以便您可以区分新添加的行和旧的行
  • 该报告本身将是一个交互式报告。为什么?因为它很容易创建,并且可以让您(或最终用户)根据他们的需要进行调整(过滤数据,以不同的方式对行进行排序,...)

祝你好运!您将需要它。