Я использую Oracle APEX 4.2. Я хочу реализовать функцию поиска в своем классическом отчете. У меня есть рабочий код, который извлекает данные, и функция поиска работает отлично. Но когда я хочу использовать предложение order by внутри этого кода, я получаю «данные не найдены», как я могу реализовать предложение order by в этом коде, чтобы мой отчет был правильно отсортирован, а функция поиска по-прежнему работала правильно.
Ниже приведен рабочий код, который позволяет выполнять поиск в классическом отчете:
declare
a_query varchar2(5000);
this_strin varchar2(50);
begin
a_query := 'select flight_nmbr, sequence_nmbr'||
'from flights '||
'where sequence_nmbr >= 0'||
'and data_version_name = '''||
:P3_DATA_VERSION || '''';
if :P3_SEARCH_NUMBER is not null then
if instr(:P3_SEARCH_NUMBER, '%') > 0 then
this_strin := :P3_SEARCH_NUMBER;
else
this_strin := '%'||:P3_SEARCH_NUMBER||'%';
end if;
a_query := a_query||chr(10)||
' and flight_nmbr like '''|| upper(this_strin) ||'''';
end if;
return a_query;
end;
Вот тот же фрагмент кода, который говорит «данные не найдены», когда я добавляю в запрос предложение order by:
declare
a_query varchar2(5000);
this_strin varchar2(50);
begin
a_query := 'select flight_nmbr, sequence_nmbr'||
'from flights '||
'where sequence_nmbr >= 0'||
'and data_version_name = '''||
'order by sequence_nmbr 1'|| ------------------Order by clause
:P3_DATA_VERSION || '''';
if :P3_SEARCH_NUMBER is not null then
if instr(:P3_SEARCH_NUMBER, '%') > 0 then
this_strin := :P3_SEARCH_NUMBER;
else
this_strin := '%'||:P3_SEARCH_NUMBER||'%';
end if;
a_query := a_query||chr(10)||
' and flight_nmbr like '''|| upper(this_strin) ||'''';
end if;
return a_query;
end;
oracle-apex-5
, если вы используете APEX 4.2. Это сбивает с толку. - person Dmitriy   schedule 19.01.2018