【发布时间】:2018-03-17 05:07:12
【问题描述】:
我试图使用 regexp_substr 从列列表字符串中获取每个正确的列名。
查询是这样的:
select regexp_substr(v_keep, '(^|[(,) ]*)' || r.column_name || '($|[(,) ]+)', 1, 1, 'i')
from dual;
但结果不正确。
v_keep 可以是任何列名列表,例如 abc、abc_abc、abc1 或 (abc,abc_abc,abc1)。
r.column_name 可以像 abc 或 ab。
- 如果输入 v_keep 是 (abc, abc_abc, abc1) 并且 r.column_name 是 ab,它将返回 null。
- 如果输入 v_keep 是 (abc, abc_abc, abc1) 并且 r.column_name 是 abc,它只会返回列名 abc。
任何人都可以通过修改 regexp_substr 中的模式来帮助我修复它吗?
【问题讨论】: