sql - Oracle Apex 刷新图表不起作用
问题描述
我在我的 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;
该查询不会引发任何错误。我想到的另一个问题是刷新的东西没有正确定义或不起作用。
解决方案
我可以解决我的问题!刷新没有错误。虽然我无法证明为什么没有加载刷新,但我认为这是一个运行时问题,因为查询太复杂了。
我将查询的最后五个或条件更改为and-clauses。之后,刷新再次起作用。
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;
查询肯定看起来像那样,因为我想过滤,这就是我需要 and 条件的原因。每个元素都必须为真,否则会出现错误的结果。
推荐阅读
- mongoid - 如何将 rails_admin 与 mongoid 一起使用?
- java - 为什么 Apache Velocity 不能处理多个点键
- ios - Swift 4.1 ABI 前向兼容性:实现苹果未来要实现的功能
- javascript - Vue Modal 按钮移动到 IE 中奇怪的地方
- excel - 更改单元格区域中的值
- docker - 无法访问 docker 容器中的端口
- webpack - babel-loader 被 webpack 配置忽略
- python - 函数内的气流pythonOperator ds变量
- html - 如何使用角度 5+ 的无限滚动?
- reactjs - 导致不同行为的样式化组件