1

随着我越来越多地了解编程语言中的正则表达式,尤其是我们可以从字符串操作中获得的所有性能优势,我看到 Oracle 当然支持正则表达式。

但是在 PeopleSoft(4 层)上,在“查询管理器”中,我们只能选择“Like”运算符,当然,每次我们使用它时,查询性能都会急剧下降(逻辑上)......

有谁知道这是可以作为参数激活的东西,还是根本不存在,因为对于“普通”最终用户来说太复杂了?

4

2 回答 2

1

从性能的角度来看,REGEXP_LIKE 与 LIKE 没有什么不同。使用索引的可能性更小。它可能只是返回一个更集中的结果集。

PeopleSoft 查询管理器(4 层)面向非技术人员。许多程序员在理解正则表达式时遇到问题:我认为不会编写 SQL 的人会在正则表达式方面遇到困难。

于 2012-10-11T10:34:43.577 回答
0

迟到总比没有好,但为了记录,我确实在 PeopleSoft 查询中使用了正则表达式(即使在 2 层模式下)。您需要使用“EQUAL TO”运算符并输入正则表达式作为 PeopleSoft 查询表达式值。

对于特定的报告,我必须让用户输入最多 5 个提示参数用于学位结帐状态 (DEGR_CHKOUT_STAT)。具体值和值的数量会根据学校和运行报告的用户而变化。

我创建了一个 30 个字符长的提示(以下称为 :3)并将其命名为 DEGR_CHKOUT_STAT。您可以发送“AW,PN,IR,EG,AG”或仅发送“AW”作为提示符:3 并且查询有效。

表达式 1:A.DEGR_CHKOUT_STAT 运算符:等于表达式 2:ANY(REGEXP_SUBSTR( :3, '[^,]+',1,1 ) , REGEXP_SUBSTR( :3, '[^,]+',1,2 ) , REGEXP_SUBSTR( :3, '[^,]+',1,3 ) , REGEXP_SUBSTR( :3, '[^,]+',1,4 ) , REGEXP_SUBSTR( :3, '[^,]+', 1,5))

由于我是新人,我没有足够的声望点来发布图片,但我可以根据要求通过电子邮件将其发送给您。

于 2014-05-16T14:48:03.513 回答