Вытащить из нескольких баз данных в одном исходном квалификаторе? - PullRequest
2 голосов
/ 18 февраля 2011

Мне интересно, можно ли извлечь из одной базы данных более одной базы данных? Вы можете указать только одно соединение с базой данных для Source Qualifier, поэтому я не уверен, возможно ли это.

Ответы [ 4 ]

2 голосов
/ 09 марта 2011

Бен,

Если они оба принадлежат одному поставщику базы данных и установлены ссылки на базы данных, вы можете использовать DBLINKS в квалификаторе источника.

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

Но если они являются гетерогенными базами данных, я думаю, что лучший способ реализовать это создать два разных квалификатора источника (или разные просмотры в зависимости от ваших требований и количества столбцов) и использовать файл параметров / сеанс для упоминания разных соединений .

0 голосов
/ 20 июля 2018

Если у входа в систему есть хотя бы права на чтение и схемы в одной службе возможны.

По какой-то причине наш администратор баз данных не разрешает использовать dblinks ...

Одной из причин использования informatica является то, что вы можете создать определенный классификатор источников (SQ) для разных источников, а затем использовать соединение Join / Union ... Поверьте, если у вас есть проблемы с некоторыми источниками данных; исправить это, и устранение неполадок будет проще.

Кроме того, представьте, что вы покидаете компанию, а другая команда занимает эту работу; графически и логически было бы легче поддерживать ...

0 голосов
/ 06 июля 2012

Я бы реализовал это, используя ссылки на базы данных, что позволяет взаимодействовать между двумя базами данных. Хотя это не является предпочтительным решением по многим причинам, это поможет вам добиться того, что вы сказали, по вашим причинам.

Однако, с точки зрения идеального решения, вы не должны делать это в первую очередь :) Если данные поступают из двух разных баз данных, получите их из двух разных квалификаторов источника, а затем, в зависимости от ваших потребностей, обратитесь к столяру или поиску (зависит от функциональных требований) и т. Д.

0 голосов
/ 18 февраля 2011

Предполагается, что используемая для подключения учетная запись имеет равные права в обеих базах данных, это 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
...