Oracle View из нескольких таблиц с одинаковыми данными - PullRequest
0 голосов
/ 13 марта 2012

У меня есть представление в Oracle с данными клиентов, например, из стол DEBTABLENL:

SELECT DEBTABLENL.ACCOUNTNUMBER  AS DBDebnmbr
 , DEBTABLENL.ELCSEARCHCODE   AS DBNameShort
 , DEBTABLENL.NAME    AS DBName1
 , Etc, Etc FROM DEBTABLENL

Можно ли расширить представление для включения записей того же типа из другой таблицы, в этом примере DEBTABLEBE

SELECT DEBTABLEBE.ACCOUNTNUMBER  AS DBDebnmbr
 , DEBTABLEBE.ELCSEARCHCODE   AS DBNameShort
 , DEBTABLEBE.NAME    AS DBName1
 , Etc, Etc FROM DEBTABLEBE

Таким образом, в итоге получился один взгляд со всеми моими клиентами из NL и BE. Мои клиенты BE находятся в базе данных MSSQL, которую я буду ежедневно переносить в базу данных Oracle, чтобы получить один большой список. Поскольку в Oracle View должны быть записи, я не могу пойти по другому пути.

С уважением,

Mike

Ответы [ 2 ]

1 голос
/ 13 марта 2012

используйте объединение в обоих запросах, например:

SELECT DEBTABLENL.ACCOUNTNUMBER  AS DBDebnmbr
 , DEBTABLENL.ELCSEARCHCODE   AS DBNameShort
 , DEBTABLENL.NAME    AS DBName1
 , Etc, Etc FROM DEBTABLENL
UNION ALL
SELECT DEBTABLEBE.ACCOUNTNUMBER
 , DEBTABLEBE.ELCSEARCHCODE
 , DEBTABLEBE.NAME
 , Etc, Etc FROM DEBTABLEBE
0 голосов
/ 13 марта 2012

Предполагая, что обе таблицы имеют одинаковую структуру, вы можете написать свое представление как:

SELECT DEBTABLE.ACCOUNTNUMBER  AS DBDebnmbr
 , DEBTABLE.ELCSEARCHCODE   AS DBNameShort
 , DEBTABLE.NAME    AS DBName1
 , Etc, Etc 
FROM (SELECT * FROM DEBTABLENL UNION ALL SELECT * FROM DEBTABLEBE) AS DEBTABLE

Если у вас есть другие таблицы, присоединенные к DEBTABLENL в ваших существующих представлениях, этот подход означает, что вам нужно будет только связать их с псевдонимом DEBTABLE один раз, вместо того, чтобы связывать их отдельно как с DEBTABLENL, так и с DEBTABLEBE, а затем объединять результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...