在ApEx中解析逗号分隔列表的最有效方法

时间:2016-07-04 17:52:09

标签: oracle csv parsing oracle-apex

我仍然在开发我的第一个单独的Oracle ApEx(Application Express)应用程序,所以我相信这对你们中的一些人来说是老生常谈。我试着查看我想做的事情,但我不确定该怎样查看。如果已经有一个回复此问题的主题,那么我为重复道歉,但我在这里搜索了大约两个小时试图解决这个问题。

我对解决方案持开放态度,因为我还没有为应用程序的这一部分构建任何东西,所以我没有被锁定在一套方式中。如果有更好的方法,请告诉我。

我想从用户那里获得逗号分隔(或分号或冒号分隔)列表。然后,我想要获取该数据并将其写入一个表中,每个值都在自己的行中。

输入示例:

X12345678, X22345678, X32345678 (and so on)

输入的数字将在不同的表格中查找,因为我们使用非识别的PIDM编号(任何使用过Ellucian的横幅的人都会理解)。这个select语句很容易检索这个数字:

Select spriden_pidm 
from spriden 
where spriden_change_ind is null
  and spriden_id = :P5_STU_ID

然后,它将被存储在一个表中:

数据存储示例:

   ID      |  Semester  |  Creating User  | Created Date | Data Origin
012345678  |   201640   |      JDOE1      |    sysdate   |  ApEx : 130
022345678  |   201640   |      JDOE1      |    sysdate   |  ApEx : 130

等等。

问题1:我假设循环将是使用正则表达式实现此目的的最佳方法。这是一个正确的假设吗?

问题2:ApEx是否已经内置了可以更好和/或更快地处理这个问题的内容?

ApEx版本5.0,Oracle 12c

2 个答案:

答案 0 :(得分:1)

APEX_UTIL.string_to_table

并使用逗号作为第二个参数

答案 1 :(得分:0)

如上所述,由于我们在部署时违背了时钟,我们最终编写了一个类似于APEX_UTIL.string_to_table(感谢Rob van Wijk)完成的循环:

HttpClient