【发布时间】:2020-06-23 05:45:10
【问题描述】:
我通过 VPN 网络 在 BIRT 中通过其 IP 地址 连接了一个远程 oracle 数据库。它显示连接成功,但表格未显示,仅显示存储过程。
有什么解决办法吗?请帮帮我。
【问题讨论】:
标签: database oracle eclipse birt
我通过 VPN 网络 在 BIRT 中通过其 IP 地址 连接了一个远程 oracle 数据库。它显示连接成功,但表格未显示,仅显示存储过程。
有什么解决办法吗?请帮帮我。
【问题讨论】:
标签: database oracle eclipse birt
原因可能是:
您是否选中了同一 JDBC 数据集首选项中的“从数据库中预取所有模式”和“启用 SQL 代码辅助”复选框? 我认为只有在选中这些时才会显示帽子表。
您认为的 TABLE 是一个 SYNONYM。只有在检查数据集编辑对话框中的“显示别名”复选框时才显示同义词。
或者它是一个视图。检查数据集编辑对话框中的“类型”列表框。
无论如何,在每天为包含大约 1000 个对象(表、视图、同义词、包等)的模式开发报告时,我已经关闭了“从数据库中预取所有模式”和“启用 SQL 代码辅助”选项,并且我千万不要错过。
作为最佳实践:
我总是使用 Oracle SQL*Developer 开发和测试我的 SQL 查询(使用格式为 :PI_XXX 的绑定变量),然后将查询复制/粘贴到 BIRT 的 DataSet 编辑对话框中。
每个绑定变量在查询中只存在一次。这是绝对必要的,因为在内部,BIRT/JDBC 将每个 :PI_XXX 绑定变量替换为“?”。
每个绑定变量对应一个 BIRT DataSet 参数。 DS 参数的顺序必须与查询中绑定变量的顺序相对应。
为了能够在查询中多次使用绑定变量,我使用了 WITH PARAMS AS (SELECT ... FROM DUAL) 技巧:
例如:
with params as
( select :PI_PATTERN as pattern
, to_date(:PI_FROM_DATE, 'DD.MM.YYYY') as from_date_incl
, to_date(:PI_UNTIL_DATE, 'DD.MM.YYYY') + 1 as until_date_excl
from dual
)
select t.MY_ID
, t.ENTRY_DATE
, t.DESCRIPTION
from my_table t
, params
where (params.pattern is null or t.description like params.pattern)
and (params.from_date_incl is null or params.from_date_incl <= t.entry_date)
and (params.until_date_excl is null or t.entry_date < params.until_date_excl)
order by t.MY_ID
【讨论】: