Используйте подстановочные знаки в вашем шаблоне.Первый запрос найдет все строки, которые имеют FROM и WHERE в столбце etxt, а второй столбец извлечет то, что находится между FROM и WHERE, поэтому выберите лучшую в зависимости от того, что вы хотите.
SELECT * FROM dba_source v
WHERE REGEXP_LIKE (v.text, 'FROM .* WHERE', 'i');
SELECT REGEXP_SUBSTR(v.text, 'FROM (.*) WHERE',1 ,1 ,'i', 2)
FROM dba_source v
Параметр 'i'
делает регистр нечувствительным к регистру, а последний параметр во втором примере означает, что это вторая группа, которая должна соответствовать