Диаграмма обновления Oracle Apex не работает - PullRequest
0 голосов
/ 13 ноября 2018

Я создал диалоговую страницу в своем приложении Apex.На этой странице пользователь может выбрать несколько фильтров для графика.После нажатия на кнопку пользователь перенаправляется на предыдущую страницу и обновляется область, в которой находится диаграмма.У меня проблема в том, что настройка фильтров не работает.После перенаправления на предыдущую страницу диаграмма обновляется бесконечно, пока не произойдет ошибка, которая говорит: Bad Gateway.Так что я не вижу никаких результатов диаграммы.Возможно ли, что запрос моего графика слишком сложен?Страница диалога содержит четыре элемента типа "шаттл", и вот запрос моего графика.

select COUNT(TRIGGER_TABLE.DATUM_UHRZEIT) as Anzahl_Trigger,
   TEST.ID as ID
from BRIDGE_SYSTEM_TRIGGER, SYSTEM_TABLE, TRIGGER_TABLE, FAHRT, TEST, MITARBEITER
where BRIDGE_SYSTEM_TRIGGER.SYSTEM_TABLE_SYSTEM_ID = SYSTEM_TABLE.SYSTEM_ID
      and BRIDGE_SYSTEM_TRIGGER.TRIGGER_TABLE_TRIGGER_ID = TRIGGER_TABLE.TRIGGER_ID
      and TRIGGER_TABLE.FAHRT_FAHRT_ID = FAHRT.FAHRT_ID
      and MITARBEITER.QNUMMER = FAHRT.MITARBEITER_QNUMMER
      and FAHRT.TEST_ID = TEST_ID
      and TRIGGER_TABLE.PRIORITAET = 0
      or ((instr(':' || upper(:P26_Tests) || ':', upper(Test.Test_ID)) > 0)
      or (instr(':' || upper(:P26_UEBERSYSTEM) || ':',':' || upper(system_table.system_name) ||':') > 0) or (instr(':' || upper(:P26_UNTERSYSTEM) || ':',':' || upper(system_table.system_name) ||':') > 0)
      or (instr(':' || upper(:P26_COUNTRIES) || ':', upper(FAHRT.LAND)) > 0)
      or (instr(':' || upper(:P26_REF) || ':', upper(Test.REF)) > 0)
      or (instr(':' || upper(:P26_DRIVER) || ':', upper(MITARBEITER.QNUMMER)) > 0))
GROUP BY TEST.ID
ORDER BY TEST_ID;

Запрос не выдает никаких ошибок.Еще одна проблема, о которой я подумал, заключается в том, что что-то с обновлением неправильно определено или не работает.

1 Ответ

0 голосов
/ 16 ноября 2018

Я мог бы решить мою проблему! Там не было никакой ошибки в обновлении. Хотя я не мог доказать, почему обновление не загружалось, я думаю, что это проблема времени выполнения, потому что запрос был слишком сложным.

Я изменил последние пять или-условий моего запроса на и-условия . После этого обновление снова работает.

select COUNT(TRIGGER_TABLE.DATUM_UHRZEIT) as Anzahl_Trigger,
TEST.ID as ID
from BRIDGE_SYSTEM_TRIGGER, SYSTEM_TABLE, TRIGGER_TABLE, FAHRT, TEST, MITARBEITER
where BRIDGE_SYSTEM_TRIGGER.SYSTEM_TABLE_SYSTEM_ID = SYSTEM_TABLE.SYSTEM_ID
      and BRIDGE_SYSTEM_TRIGGER.TRIGGER_TABLE_TRIGGER_ID = TRIGGER_TABLE.TRIGGER_ID
      and TRIGGER_TABLE.FAHRT_FAHRT_ID = FAHRT.FAHRT_ID
      and MITARBEITER.QNUMMER = FAHRT.MITARBEITER_QNUMMER
      and FAHRT.TEST_ID = TEST_ID
      and TRIGGER_TABLE.PRIORITAET = 0
      and ((instr(':' || upper(:P26_Tests) || ':', upper(Test.Test_ID)) > 0)
      and (instr(':' || upper(:P26_UEBERSYSTEM) || ':',':' || upper(system_table.system_name) ||':') > 0) or (instr(':' || upper(:P26_UNTERSYSTEM) || ':',':' || upper(system_table.system_name) ||':') > 0)
      and (instr(':' || upper(:P26_COUNTRIES) || ':', upper(FAHRT.LAND)) > 0)
      and (instr(':' || upper(:P26_REF) || ':', upper(Test.REF)) > 0)
      and (instr(':' || upper(:P26_DRIVER) || ':', upper(MITARBEITER.QNUMMER)) > 0))
GROUP BY TEST.ID
ORDER BY TEST_ID;

Запрос определенно должен выглядеть так, потому что я хочу фильтровать, и поэтому мне нужно условие-и. Каждый элемент должен быть истинным, иначе появятся неправильные результаты.

...