Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 вых.параметр EXEC линкованного Oracle  [new]
armas
Member

Откуда: Калуга
Сообщений: 9
--- имеем на Oracle в пакете cserv
procedure test(
p_in number,
p_out out varchar2
) is
begin
p_out := 'p_in=' || to_char(p_in);
end; -- test

--- выполняем на sql2005
declare @msg varchar(100);
exec('begin vlv.cserv.test(?,?); end;', 123, @msg output) at LS_TESTRTL;
select @msg as MSG

--- получаем по лбу
(1 row(s) affected)
Msg 7215, Level 17, State 1, Line 2
Could not execute statement on remote server 'LS_TESTRTL'.

!!! как получить значение вых.параметра ?
!!! интересует EXEC, т.к. в реале, ХП передается около 100 параметров различного типа

Удачи!
17 июл 08, 10:25    [5946184]     Ответить | Цитировать Сообщить модератору
 Re: вых.параметр EXEC линкованного Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104760
А что, на Oracle то команда передается ?
17 июл 08, 10:27    [5946207]     Ответить | Цитировать Сообщить модератору
 Re: вых.параметр EXEC линкованного Oracle  [new]
armas
Member

Откуда: Калуга
Сообщений: 9
на oracle ХП выполняется (проверил через вставку в таблицу)
17 июл 08, 10:36    [5946293]     Ответить | Цитировать Сообщить модератору
 Re: вых.параметр EXEC линкованного Oracle  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
ИМХО. Сбрасывать из процедуры в оракловую таблицу, затем считывать селектом.
17 июл 08, 10:45    [5946355]     Ответить | Цитировать Сообщить модератору
 Re: вых.параметр EXEC линкованного Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104760
armas
на oracle ХП выполняется (проверил через вставку в таблицу)

Вопрос был - "передается ли команда в Oracle"
17 июл 08, 10:47    [5946372]     Ответить | Цитировать Сообщить модератору
 Re: вых.параметр EXEC линкованного Oracle  [new]
armas
Member

Откуда: Калуга
Сообщений: 9
Вопрос был - "передается ли команда в Oracle"

да
17 июл 08, 10:55    [5946440]     Ответить | Цитировать Сообщить модератору
 Re: вых.параметр EXEC линкованного Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104760
armas
Вопрос был - "передается ли команда в Oracle"

да

И вы видите в трассировщике, что на Oracle никакой ошибки не возникает ?
17 июл 08, 10:56    [5946451]     Ответить | Цитировать Сообщить модератору
 Re: вых.параметр EXEC линкованного Oracle  [new]
armas
Member

Откуда: Калуга
Сообщений: 9
всем спасибо, проблема решена
суть: параметр output должен быть не NULL

--- oracle
procedure test(
p_in number,
p_out in out varchar2
) is
begin
p_out := nvl(p_out,'*') || ' p_in=' || to_char(p_in);
end; -- test
--- sql2005
declare @msg varchar(100);
set @msg = 'tratata'
exec('begin vlv.cserv.test(?,?); end;', 123, @msg output) at LS_TESTRTL;
select @msg as MSGxxx
--- все работает ;-)
17 июл 08, 11:11    [5946595]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: вых.параметр EXEC линкованного Oracle  [new]
kain111
Member

Откуда:
Сообщений: 226
спасибо, и впрямь при определении output
заработало
1 мар 10, 10:41    [8409963]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: вых.параметр EXEC линкованного Oracle  [new]
Двоичник
Member

Откуда: Бобруйск
Сообщений: 292
А MSSQL Server 2012
при подобном падает служба. как быть?
19 май 15, 16:52    [17662741]     Ответить | Цитировать Сообщить модератору
 Re: вых.параметр EXEC линкованного Oracle  [new]
Двоичник
Member

Откуда: Бобруйск
Сообщений: 292
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
19 май 15, 16:57    [17662777]     Ответить | Цитировать Сообщить модератору
 Re: вых.параметр EXEC линкованного Oracle  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Служба падает из-за падения драйвера.
19 май 15, 17:47    [17663174]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить