Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
Дорогие друзья, прошу помощи!

Я прочел много различной информации по данному вопросу и запутался.

Задача следующая.
Есть два настроенных ODBC-коннекта для SQL-запросов. Оба конекта настроены посредством Oracle in inatantclient_19_3_x64.
Мне очень надо, находясь в одном соединении, получить данные из БД по другому соединению.

Пожалуйста, подскажите, что проще и лучше применить?
Буду очень признателен за пример.

Спасибо огромное заранее за помощь!
28 май 21, 14:54    [22328479]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19237
Begimot441
Оба конекта настроены посредством Oracle in inatantclient_19_3_x64.

Что это за зверь?
Каким инструментом пользуетесь для исполнения запросов?
Требуется разовое действие или пытаетесь наладить интеграцию?
28 май 21, 14:56    [22328481]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
andrey_anonymous,

Oracle in inatantclient_19_3_x64 - это драйвер, насколько я понимаю. В окне "ODBC Data Sourse Administrator" и вижу его в колонке "Driver".

Запрос выполняет специализированное приложение. Оно, далее, парсит запрос и обрабатывает информацию.
Я сам тренируюсь при помощи SqlDbx (на параллельных 32-битных коннектах).

Запросы будут периодические. Примерно 1 раз в 2 часа. По сути, интеграция.
28 май 21, 15:03    [22328487]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
andrey_anonymous,

Простите, что написал драйвер с ошибкой.
Конечно же, Oracle in instantclient
28 май 21, 15:05    [22328488]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
rimall
Member

Откуда:
Сообщений: 43
dblink из одной БД в другую и использовать одно ODBC соединение
28 май 21, 15:10    [22328493]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
rimall,

Насколько я понимаю, dblink нужно делать на стороне самих БД. Но мне это недоступно, к сожалению. Базы чужие.
28 май 21, 15:19    [22328504]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53487

Значит придётся как-то обходиться отдельными запросами в каждую из баз.

Posted via ActualForum NNTP Server 1.5

28 май 21, 15:26    [22328508]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
Dimitry Sibiryakov,

Неужели так получается?
На firebird мне как то без труда удалось обратиться к другой БД.
Неужели мощнейший Oracle не умеет такие вещи... Статей много различных, где дают варианты...
28 май 21, 15:31    [22328513]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9664
Подозреваю, что еще зависит от средства, которым пользуется автор.

Например для MS Access или FoxPro - лично я проблем не вижу
Да и в SQLPLUS вроде есть команда COPY.
28 май 21, 15:35    [22328515]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
Leonid Kudryavtsev,

Если автор - это я, то с удовольствием предоставлю все информацию.
Только какую?


Вообще, насколько я понял из различных описаний, мне нужно что-то вроде

CREATE DATABASE LINK db_link
CONNECT TO USER_NAME IDENTIFIED BY USER_PSWRD
USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = х.х.х.х)(PORT = уууу))) (CONNECT_DATA = (SID = сид)))';

select <нужные поля> from db_link@all_source
28 май 21, 15:40    [22328520]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19237
Begimot441
По сути, интеграция.

У Вас два вменяемых варианта.
- Написать необходимую логику в приложении, обращаясь к двум соединениям
- Воспользоваться любым доступным DI-продуктом.
28 май 21, 15:48    [22328529]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
andrey_anonymous,

Спасибо! Грустно!

Можно Вас попросить посоветовать "DI-продукт"?
29 май 21, 08:20    [22328739]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Sayan Malakshinov
Member

Откуда: Мск
Сообщений: 5888
Begimot441
Но мне это недоступно, к сожалению. Базы чужие.
так вы спросите тех кто за них отвечает, вполне возможно, что дблинки уже есть
29 май 21, 18:16    [22328821]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53487

Ну и всегда остаётся возможность поднять свой собственный сервер с базой лёгкого поведения
и уже из ней создать линки на два остальных.

PS: Накуда в этой картине ODBC я вообще не понимаю.

Posted via ActualForum NNTP Server 1.5

29 май 21, 18:36    [22328827]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
mefman
Member

Откуда:
Сообщений: 3475
Задача решается в десяток-другой строчек кода на скриптовом языке.
29 май 21, 20:57    [22328864]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
mefman,

Спасибо!
Можно чуть-чуть подробнее.
С сожалению, даже толком не знаю понятия "скриптовой язык", хоть и программирую...
30 май 21, 04:34    [22328916]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15498
Begimot441
mefman,

Спасибо!
Можно чуть-чуть подробнее.
С сожалению, даже толком не знаю понятия "скриптовой язык", хоть и программирую...


насколько понимаю, совет про "скриптовой язык"

это попытка, лично для вас пояснить совет другого хорошего человека

- Воспользоваться любым доступным DI-продуктом.

только, имхо, времена тяжелые. кто еще и жив и тот болеет.

вот раньше - было достаточно всуе вякнуть бэйсик , как в тот же миг вам хором объясняли, что ..
(и он мертв и есть 100500 вариантов и автор его м..к и вендор м.. и вы тоже м.. ) и тут уже просыпался модератор и выписывал бан вам
(почему вам? а нех.. было начинать! )
30 май 21, 08:53    [22328925]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53487

Begimot441
хоть и программирую...

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

Posted via ActualForum NNTP Server 1.5

30 май 21, 13:03    [22328952]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
mefman
Member

Откуда:
Сообщений: 3475
Begimot441
mefman,

Спасибо!
Можно чуть-чуть подробнее.
С сожалению, даже толком не знаю понятия "скриптовой язык", хоть и программирую...

Значит бери тот язык, на котором программируешь.
30 май 21, 20:07    [22329015]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
Друзья!
Спасибо за рекомендации написать свой код. Конечно, я и сам думал об этом.
Но! Я решаю задачу внедрения информационной системы на производстве. Система имеет свою архитектуру, свои штатные приложения и информационные потоки. Все, что делается дополнительно (модули, компоненты и пр.) - это "приблуды" с т.зр. архитектуры системы. Применение "приблуд" крайне нежелательно.
Поэтому я и ищу такой выход, чтобы не вводить дополнительные сущности, в частности, свои дописанные программные модули.

В этом ключе я попытался проанализировать все то, что вы мне посоветовали, и решил подробнее проработать первый вариант, который обозначил коллега:
andrey_anonymous
Begimot441
По сути, интеграция.

У Вас два вменяемых варианта.
- Написать необходимую логику в приложении, обращаясь к двум соединениям
- Воспользоваться любым доступным DI-продуктом.


Очень надеюсь, что получится. Не получится, вернусь))

Спасибо вам за дельные советы!
31 май 21, 04:19    [22329079]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 56203
Begimot441,

какую задачу решаете? Грид показать? Отчет-эксель сформировать? страницу сформировать? или что-то потом куда-то перепосадить?

Сообщение было отредактировано: 31 май 21, 09:25
31 май 21, 09:34    [22329135]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53487

Begimot441
Я решаю задачу внедрения информационной системы на производстве

Это как-то не вяжется с первоначальным посылом "есть две базы данных к которым у меня нет
прав на запись".

Posted via ActualForum NNTP Server 1.5

31 май 21, 12:37    [22329258]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
mefman
Member

Откуда:
Сообщений: 3475
andreymx
Begimot441,

какую задачу решаете? Грид показать? Отчет-эксель сформировать? страницу сформировать? или что-то потом куда-то перепосадить?

Он сам наверное ещё не решил
31 май 21, 19:00    [22329514]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 3038
Begimot441
rimall,

Насколько я понимаю, dblink нужно делать на стороне самих БД. Но мне это недоступно, к сожалению. Базы чужие.


дблинк и на стороне клиента делается
1 июн 21, 09:46    [22329668]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
Dimitry Sibiryakov,

Почему же не вяжется?
Внедряется микропроцессорная система. В ней, помимо прочего, расчеты. Исходные данные к расчетам берутся из существующих производственных БД. Доступ к ним у меня только на чтение. Влиять на их структуру и пр. я не могу.

Но наша система (которая внедряется) ограничена по функционалу. Может получать данные по ODBС. Может считать и т.п.
Есть задача, где надо сформировать результат комбинаторикой информации. Запрос - самое удобное для этого. Но данные для этой задачи находятся в разных БД.

Вот такая у меня задача. Ничего я не придумываю. Если не всегда четко объясняю, то прошу прощения.
1 июн 21, 12:43    [22329774]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Begimot441
Member

Откуда:
Сообщений: 34
andreymx,

См. ответ выше.
1 июн 21, 12:44    [22329775]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53487

Begimot441
Внедряется микропроцессорная система.

Микрочего, простите, ваша система?

Begimot441
Есть задача, где надо сформировать результат комбинаторикой информации. Запрос - самое
удобное для этого.

Нет, как раз для комбинаторики, запрос - наихудший из возможных способов. Самый медленный.

Posted via ActualForum NNTP Server 1.5

1 июн 21, 13:08    [22329795]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19237
Похоже, ТС обычное хранилище строит.
Для наполнения хранилища применяются обычно инструменты DI (Oracle DI, SAS DI, Informatica, Pentaho DI, ...)
Если есть возможность - то для снижения нагрузки на источники можно рассмотреть Oracle Golden Gate и его аналоги.
1 июн 21, 13:57    [22329817]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в две БД  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 56203
Begimot441,

похоже на центральную часть интегрированной АСУТП, которая собирает данные с разных источников
и
1. куда-то кладет
2. делает аналитику

Сообщение было отредактировано: 1 июн 21, 18:28
1 июн 21, 18:36    [22330022]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Oracle Ответить