Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Oracle+Oracle. Как подключится из одной базы к другой

416
20 мая 2009 года
MaitreDesir
380 / / 02.01.2008
Работаю в Oracle 11 Enterprise, которая крутится на слаквари. Задача состоит в следующем. Есть две базы А и Б. Есть пользователи юзер_а и юзер_б. Есть таблица Т_А в базе А, и Т_Б в базе Б. Пользователь юзер_а имеет полный доступ в базе А к таблице Т_А, аналогично для юзер_б. Есть хранимая процедура, которая работает в базе А (на пл/скл естественно), и которая дожна перекинуть данные из Т_Б в Т_А. Все просто (то что там инфа преобразовыватся - ерунда, это не существенно). Вопрос: как из хранимой процедуры в базе А получить данные из таблицы Т_Б. Вернее, как получить понятно, не понятно как до базы Б добраться.
Гугл молчит, прошу извинить если это есть в офф. документации, я не нашел.
46K
20 мая 2009 года
flame_max
23 / / 09.04.2009
сам в Oracle новичек, но Вы не пробовали просто [название базы].[название схемы].[название таблицы] ?
416
20 мая 2009 года
MaitreDesir
380 / / 02.01.2008
Цитата: flame_max
сам в Oracle новичек, но Вы не пробовали просто [название базы].[название схемы].[название таблицы] ?



Думаю даже пробовать не стоит, т.к. пользователи разные. Меня просто никто туда не пустит без указания юзера.

412
21 мая 2009 года
grgdvo
323 / / 04.07.2007
Попробуйте начать с

 
Код:
CREATE DATABASE LINK


Судя по документации
Цитата:

Use the CREATE DATABASE LINK statement to create a database link. A database link is a schema object in one database that enables you to access objects on another database



Цитат взята из версии 10.2, но думаю в 11 тоже должно работать. И
http://otn.oracle.com Вам в помощь

416
21 мая 2009 года
MaitreDesir
380 / / 02.01.2008
Цитата: grgdvo
Попробуйте начать с

 
Код:
CREATE DATABASE LINK


Судя по документации


Цитат взята из версии 10.2, но думаю в 11 тоже должно работать. И
http://otn.oracle.com Вам в помощь



Пасиба, помогло!

416
21 мая 2009 года
MaitreDesir
380 / / 02.01.2008
Решил проблему полностью. Отписываю подробности.
Для начала создаем связь (как указано выше)

 
Код:
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


db_link - имя созданной связи. Подробнее http://www.sql.ru/forum/actualthread.aspx?tid=593397
36K
21 мая 2009 года
Sonia
74 / / 21.05.2009
Вопрос из той же оперы. Точнее как бы в продолжение. Как в такой же ситуации из базы на которую создан Link вызвать хранимую процедуру?
8.2K
21 мая 2009 года
Ora-cool
211 / / 20.09.2007
begin
<имя_схемы>@<линк>.<имя процедуры>;
end;

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

На вызов процедуры у вызывающего должны быть права (GRANT EXECUTE ... )
36K
22 мая 2009 года
Sonia
74 / / 21.05.2009
спасибо за наводку сработало, но немного подругому. < схема>.<процедура>@<линк>:)

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог