我想知道是否可以从同一个源限定符中的多个数据库中提取数据。您只能为每个源限定符指定一个数据库连接,因此我不确定这是否可行。
答案 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转换...如果某些数据源中存在问题,请相信我;对其进行修复,故障排除会更加容易。
还可以想象您离开公司,而其他团队接任该职位;图形和逻辑上将更易于维护...