【发布时间】:2011-02-18 20:19:28
【问题描述】:
我想知道是否可以从同一个源限定符中的多个数据库中提取。您只能为每个源限定符指定一个数据库连接,所以我不确定这是否可行。
【问题讨论】:
我想知道是否可以从同一个源限定符中的多个数据库中提取。您只能为每个源限定符指定一个数据库连接,所以我不确定这是否可行。
【问题讨论】:
本,
如果它们都来自同一个数据库供应商并且设置了数据库链接,则可以在源限定符中使用 DBLINKS。
select a.col1,
b.col2
from schema1.table1 a,
schema1.table2@db2 b
where a.col3 = b.col4;
但如果它们是异构数据库,我认为最好的实现方式是创建两个不同的源限定符(或根据您的要求和列数进行不同的查找)并使用参数文件/会话来提及不同的连接.
【讨论】:
假设用于连接的帐户在两个数据库中具有同等权限,则它是 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
【讨论】:
我将使用数据库链接来实现这一点,它允许跨两个数据库进行交互。 尽管出于多种原因不是首选解决方案,但出于您的原因,这将帮助您实现您所说的。
但是,从理想的解决方案的角度来看,您不应该首先这样做 :) 如果数据来自两个不同的数据库,请从两个不同的源限定符中获取它们,然后根据您的需要,进行连接器或查找(取决于功能要求)等。
【讨论】:
如果登录至少有读取权限并且架构在同一个服务中是可能的。
出于某种原因,我们的 DBA 不允许使用 dblink...
使用 informatica 的一个原因是,您可以为不同的源创建特定的源限定符 (SQ),然后使用 Join/Union trans... 如果您在某些数据源中遇到问题,请相信我;修复它,故障排除会更容易。
还假设您离开公司,其他团队接手该工作;图形和逻辑上会更容易维护......
【讨论】: