Как и мой заголовок, в некоторых случаях я вижу Regexp_substr быстрее и дешевле, чем в Instr, а в некоторых случаях - наоборот.Я не знаю, когда мне следует использовать Instr или Regexp_substr, кто-то может объяснить мне и рассказать о пользе каждого из них?Пример следующий:
**Regexp_substr:**
SELECT * FROM tabl1
WHERE 1 = 1
AND col1 IN (
SELECT regexp_substr(abc,'[^,]+',1,level) AS A
FROM (
SELECT 001 abc -- replace with parameter
FROM DUAL
)
CONNECT BY LEVEL <= LENGTH (REGEXP_REPLACE (abc,'[^,]'))+1 );
**Instr:**
SELECT * FROM tabl1
WHERE 1 = 1
AND INSTR (',' || '001' || ',',',' || col1 || ',') > 0 ;
Спасибо!