Я сделал следующий тест, это может быть то, что вы ищете:
create table t(json_v varchar2(40))
insert into t values('["abc", "xyz"]');
insert into t values('["cde", "fgh"]');
insert into t values('["xyz"]');
SELECT *
from t, json_table(t.json_v, '$[*]' columns (value PATH '$'))
WHERE value = 'xyz'
Output Result
JSON_V value
["abc", "xyz"] xyz
["xyz"] xyz
Ваш второй вопрос, почему запрос всегда возвращает ноль, так как вы должны обернуть значения, смотрите синтаксис JSON_QUERY
SELECT JSON_QUERY(json_v, '$[*]' WITH WRAPPER) AS value FROM myTable;