【问题标题】:JOIN two (2) Datasets from different DB on BIRT Designer (v.4.4.0)在 BIRT Designer (v.4.4.0) 上连接来自不同数据库的两 (2) 个数据集
【发布时间】:2018-07-11 21:08:57
【问题描述】:

我想问一下我这些天在使用 BIRT Designer (v.4.4.0)“设计”一些报告时遇到的问题。 我尝试制作一个 UNION DATASET 但这对我不起作用。我可以从工人那里为姓名和姓氏制作一个 SWITCH 公式,但我必须在表格上写下 500 多个带有 ID 的姓名和姓氏。所以这种技术行不通。

示例如下所示。我有两个数据库,当然还有表。

Database Name:   DB_1
Table Name:      Production

    Worker_ID     Machine_ID     Project     Good     Bad
    1188          001            Test_01      5        0
    1005          001            Test_01      6        0



Database Name:   DB_2
Table Name:      User

    Worker_ID     Name      Surname
    1188          John       Doe
    1005         Donald     Trump


我想在 BIRT Designer 上的表格上显示这样的信息

Machine_ID    Project    Good    Bad    Worker_ID    Worker_Name    Worker_surname
001           Test_01     5       0        1188          John            Doe
001           Test_01     6       0        1005         Donald          Trump


谁能帮助我处理 SQL 或一些关于这个问题的教程?

如果有人能帮我制作一些截图,我将不胜感激。

【问题讨论】:

    标签: sql oracle dataset birt


    【解决方案1】:

    首先,您需要在DB_1DB_2 上有一个database link

    假设您有这样一个 DB_2 的 $ORACLE_HOME/network/admin/tnsnames.ora 文件:

    DB_2 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = mydb2)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = bp83.mycompany.com)
        )
      )
    

    让我们在DB_1 上创建一个指向DB_2 的数据库链接:

    create public database link DB2_LNK
      connect to HR -- assumed schema name
      using 'mydb2:1521/bp83.mycompany.com';
    

    现在需要一个内连接查询(假设你当时在DB_1):

    select p.machine_id as "Machine_ID", p.project as "Project", p.good as "Good", p.bad as "Bad", u.Worker_ID as "Worker_ID", u.Name as "Worker_Name", u.Surname as "Worker_surname" -- with formatted titles
      from Production p inner join hr.User_@DB2_LNK u  -- a keyword "user" cannot be used as a table name("ORA-00903: invalid table name" error raises when you attempt), so i assumed table name as "User_".
        on ( u.Worker_ID = p.Worker_ID )
    

    【讨论】:

    • 您好,我正在尝试,但出现了这个错误。 ibb.co/myKCg6 有东西不见了,我现在不知道...
    猜你喜欢
    • 1970-01-01
    • 2013-11-11
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多