当我在argos报告中运行此查询时,我收到此无效字符的错误

时间:2017-03-23 11:24:13

标签: sql oracle regexp-substr

select regexp_substr('SMITH,ALLEN,WARD,JONES','[^,]+', 1, level)
from dual
connect by regexp_substr('SMITH,ALLEN,WARD,JONES', '[^,]+', 1, level) is not null;

1 个答案:

答案 0 :(得分:0)

您没有包含错误,因此我们不知道哪个字符无效。这是一个不同的版本,它执行相同的操作,但处理NULL列表元素。因为它不包含抑扬符,所以看看它是否是罪魁祸首:

select regexp_substr('SMITH,ALLEN,WARD,JONES','(.*?)(,|$)', 1, level, NULL, 1)
from dual
connect by level <= regexp_count('SMITH,ALLEN,WARD,JONES', ',')+1;

请告诉我们结果。

P.S。不要使用正则表达式格式'[^,]+'来解析列表,因为如果有NULL列表元素,它将返回不正确的值。请参阅此帖子以获取解释:https://stackoverflow.com/a/31464699/2543416