JasperReport在单个SQL查询和单个报告中的多个数据库

时间:2013-12-03 16:54:23

标签: oracle jasper-reports

我是 JasperReports (我正在使用5.0.0)的新手,我必须开发一个报告,其中Oracle SQL查询就像

SELECT A, B , C , (SELECT D , E FROM TABLEDATABASE2 WHERE D==A) FROM  TABLEDATABASE1

子查询((SELECT D , E FROM TABLEDATABASE2 WHERE D==A))以前是Oracle函数,但现在它必须是一个正确的查询。

数据库实际上是相同的,但有两个不同的用户拥有自己的表。

我已尝试使用子报表执行此操作,但我不知道如何对两个不同的数据源进行嵌套查询。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

执行用户必须能够访问这两个表和相应的用户。

您可以使用GRANT语句执行此操作:http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm#SQLRF01603

关于查询:

您必须使用其用户为表名添加前缀,以便识别这些对象:

SELECT       t1.A
            ,t1.B
            ,t1.C 
            ,t2.D
            ,t2.E
FROM        user1.TABLEDATABASE1 t1
  LEFT JOIN user2.TABLEDATABASE2 t2 ON t2.D = t1.A