CftClub.ru
Клуб специалистов ЦФТ-Банк

DB_LINK на другую базу

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеВт Июл 24, 2012 14:22   DB_LINK на другую базу Ответить с цитатой
Полезность: Нет оценки
Добрый день.
Подскажите, плиз, как использовать конструкцию выбора данных из DB_linka на PL+
требуется перевести вот такой селект на PL+

Код:

select "Name"
                into name_kli
                FROM crm."tbl_Account"@LINK_CRM
                where id_cft=75885;


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

Код:

FUNCTION kav_crm_kli (id_kli_CFT IN NUMBER,type_kli IN varchar2)
return number
pas
Профи


Вступление в Клуб: 20.11.2007
СообщениеВт Июл 24, 2012 14:48    Ответить с цитатой
Полезность: Нет оценки
как то так:
Код:
-- begin pl/sql
For k in (select cd.cryptouid            
from    cryptouid@bss cd
where 1=1-- ну в общем тут условия
Order by CR.contract
)loop
 Null;
End loop;
-- end pl/sql
pas
Профи


Вступление в Клуб: 20.11.2007
СообщениеВт Июл 24, 2012 14:50    Ответить с цитатой
Полезность: Нет оценки
или что такое:
Код:
begin
      gstring :=      
               'declare '
                ||'t         varchar2 (100); '
                ||'pipe_name   varchar2 (100):='||''''||'DEBUG$test'||''''||'; '
                ||'begin '
                ||'t:='||''''||' '||''''||'; '
                ||'t:=IBS.Z$NOTRADE_LIB_EX.TEST@dblink'
                ||'('||''''
                ||P_FILIAL%id
                ||''''||','||''''
                ||trim(P_NUM_PK)
                ||''''||'); '
                   ||'end; '
                   ||'COMMIT; ';
                   
      stdio.put_line_pipe('Запрос: ' || gstring,'DEBUG$test');   
      T := rtl.execute_sql(gstring);
      exception when others then
      stdio.put_line_pipe('Ошибка! '||sqlerrm,'DEBUG$test');   
   end;
   stdio.put_line_pipe('>>>'||T||sqlerrm,'DEBUG$test');
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеВт Июл 24, 2012 15:20   Re: DB_LINK на другую базу Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Добрый день.
Подскажите, плиз, как использовать конструкцию выбора данных из DB_linka на PL+
требуется перевести вот такой селект на PL+

Код:

select с.С_Name
                into name_kli
                FROM "tbl_Account"@LINK_CRM с
                where id_cft=75885;


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

Код:

FUNCTION kav_crm_kli (id_kli_CFT IN NUMBER,type_kli IN varchar2)
return number

Код:
declare
    name_kli varchar2(300);
begin
    -- begin pl/sql
     select "Name"
    into name_kli
    FROM crm."tbl_Account"@LINK_CRM
    where id_cft=75885;
     -- end pl/sql
     ... что-то делаем с name_kli  в PL+

end;

_________________
всегда есть как минимум 2 выхода
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеСр Июл 25, 2012 14:31    Ответить с цитатой
Полезность: Нет оценки
Всем спасибо, сделал через
-- begin pl/sql
Но пришлось вынести это всё в функцию в локальные описания, а уже из проверки делать вызов этой функции.
Dobrojelatel
Участник


Вступление в Клуб: 09.08.2012
СообщениеПт Авг 10, 2012 05:31    Ответить с цитатой
Полезность: Нет оценки
Можно использовать синтаксис pl/plus если заранее создать синоним к нужному объекту

CREATE OR REPLACE SYNONYM IBS.crm_tbl_account FOR crm."tbl_Account"@LINK_CRM

Соответственно селект пишем так
Код:
select x(x.Name )
                in crm_tbl_Account%rowtype
                where x.id_cft=75885
                into name_kli;

Не забудьте включить расширенный синтаксис для операции на вкладке Компиляция.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru