从同一源限定符中的多个数据库中提取?

时间:2011-02-18 20:19:28

标签: informatica-powercenter

我想知道是否可以从同一个源限定符中的多个数据库中提取数据。您只能为每个源限定符指定一个数据库连接,因此我不确定这是否可行。

4 个答案:

答案 0 :(得分:2)

钟,

如果它们都来自同一个数据库供应商并且已设置数据库链接,则可以在源限定符中使用DBLINKS。

select a.col1,
       b.col2
  from schema1.table1 a,
       schema1.table2@db2 b
  where a.col3 = b.col4;

但如果它们是异构数据库,我认为最好的实现方法是创建两个不同的源限定符(或根据您的需求和列数进行不同的查找),并使用参数文件/会话来提及不同的连接

答案 1 :(得分:0)

假设用于连接的帐户在两个数据库中具有相同的权限,则为DATABASE_NAME.TABLE_NAME

SELECT
    a.id 
   ,a.name
   ,a.company
   ,b.company_id 
   ,b.company_name
   ,b.address 
FROM
  database1.users as a 
JOIN 
  database2.companies as b ON a.company=b.company_id

答案 2 :(得分:0)

我将使用数据库链接实现此功能,该链接允许跨两个数据库进行交互。 虽然出于多种原因不是首选解决方案,但这可以帮助您实现您所说的内容。

然而,从理想的解决方案的角度来看,你不应该在第一时间这样做:) 如果数据来自两个不同的数据库,从两个不同的源限定符中获取它们,然后根据您的需要,进行连接或查找(取决于功能要求)等。

答案 3 :(得分:0)

如果登录名至少具有读取权限,并且架构处于相同的服务,则可能是这样。

由于某种原因,我们的DBA不允许dblinks ...

使用informatica的一个原因是,您可以为不同的源创建特定的源限定符(SQ),然后使用Join / Union转换...如果某些数据源中存在问题,请相信我;对其进行修复,故障排除会更加容易。

还可以想象您离开公司,而其他团队接任该职位;图形和逻辑上将更易于维护...