Некоторые процедуры, над которыми я работаю, принимают строку JSON в качестве varchar2 в качестве входного параметра, который содержит параметры, отправленные в виде пар ключ-значение с нашего веб-сервера, которые предназначены для фильтрации результатов запроса. В зависимости от варианта использования некоторые параметры могут не отображаться во входящем JSON. Мне интересно, есть ли способ использовать значения параметров в строке JSON в качестве условий в запросе, даже если определенные параметры могут не возвращать значение? Примерно так:
v_json VARCHAR2 := '{"paramA":"valueA","paramB":"valueB"}';
//the JSON can include values for either paramA, paramB, and paramC
SELECT *
FROM table
WHERE colA = paramA
AND colB > paramB
AND colC LIKE paramC;
Поскольку в JSON нет paramC, мне нужно выполнить запрос, подобный следующему:
SELECT *
FROM table
WHERE colA = paramA
AND colB > paramB
//condition C shouldn't be considered, since a null value would have
//produce the wrong results