В DBeaver, как я могу выполнить запрос на объединение SQL из двух разных соединений? - PullRequest
0 голосов
/ 11 декабря 2018

Недавно мы перенесли большую базу данных DB2 на новый сервер.Это сильно сократилось в процессе миграции, например, за 10 лет количество данных сократилось до 3, если назвать несколько.Но теперь я обнаружил, что мне нужны определенные данные со старого сервера до окончания налогового сезона.

Как я могу выполнить запрос UNION в DBeaver, который извлекает данные из двух разных подключений ..?Каков правильный синтаксис идентификаторов таблицы в ключевых словах FROM и JOIN ..?

Я использую DBeaver для своей обычной работы с SQL и не могу определить, как распределить запрос UNION по двумразные связи.Тем не менее, я также использую Microsoft Access, и я легко сделал это там с двумя сквозными запросами, которые передаются в собственный запрос объединения Microsoft Access.

Но как это сделать в DBeaver ..?Я не могу понять, как использовать два соединения одновременно.

Например, вот мои соединения:

enter image description here

И мне нужно что-то вроде этого ...

SELECT      *
FROM        ASP7.F_CERTOB.LDHIST 
UNION
SELECT      *
FROM        OLD.VIPDTAB.LDHIST 

... но я получаю следующую ошибку, на которую я говорю: "Не шучу! Это то, что я хочу!", Лол ... = -)

SQL Error [56023]: [SQL0512] Statement references objects in multiple databases.

Как это можно сделать ..?

1 Ответ

0 голосов
/ 11 декабря 2018

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

Вы можете экспортировать данные из своей базы данных OLD и импортировать их в ASP7 с помощью DBeaver(хотя инструменты продавца для этого обычно более эффективны).Затем вы можете выполнить объединение в соответствии с предложением.

Многие СУБД предлагают способ логического доступа к иностранным базам данных, как если бы они были локальными, и в этом случае DBeaver сможет получить доступ к данным из базы данных OLD (насколько это возможно).поскольку DBeaver обеспокоен в этой ситуации, все данные поступают из одного соединения).Например, в Postgres можно использовать стороннюю оболочку данных для доступа к чужим данным.

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

...