Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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; |
Не забудьте включить расширенный синтаксис для операции на вкладке Компиляция. |
|
 |
|