Я хочу добавить поиск в свой классический отчет, поэтому я добавил текстовое поле и кнопку на своей странице над отчетом и добавил на страницу процесс, выполняющий код PL / SQL:
DECLARE
v_sql varchar2(4000);
BEGIN
IF :P3_SEARCH IS NOT NULL THEN
v_sql := q'[select field1, field2, field3
FROM Table1
WHERE category_id = ]' ||TO_NUMBER(:P3_CATEGORY)||
q'[ AND (function(id) LIKE '%]'||:P3_SEARCH|||
q'[%' OR field2 LIKE '%]' ||:P3_SEARCH||
q'[%' OR field3 LIKE '%]' ||:P3_SEARCH|| q'[%')]';
ELSE
v_sql := q'[select field1, field2, field3
FROM Table1
WHERE category_id = ]' ||TO_NUMBER(:P3_CATEGORY)|| q'[]';
END IF;
apex_debug.MESSAGE('my query is: ' || v_sql);
-- RETURN v_sql;
END;
У меня есть две проблемы - мой результирующий запрос не получается, как ожидалось - %
знаки исчезают и вместо
select field1, field2, field3
FROM Table1
WHERE category_id = 4
AND (function(id) like '%test%' OR field2 like '%test%' OR field3 like '%test%')
Я получаю
select field1, field2, field3
FROM Table1
WHERE category_id = 4
AND (function(id) like 'test' OR field2 like 'test' OR field3 like 'test')
И я также не могу понять, как переключить исходный sql для моего региона отчета при нажатии кнопки поиска. Кто-нибудь может помочь?