Добрый день!
Вопрос такой - можно ли с помощью ADOCommand присоединиться к другой базе Oracle и вызвать хранимую процедуру? Процедура имеет два параметра - один типа IN, другои типа OUT. Я получаю ошибку "ORA-01008: not all variables bound"
CRM версия 3.1.1.53
Нравится
Там неуказанно как именно Кирилл это сделал, но, как я понял, я делаю тем же методом, но получаю эту ошибку.
код ADOCommand:
[sql]
call "TestSP"(:USERID,:STATUSS)
[/sql]
код JavaScript:
[javascript]
var sp = Services.GetNewItemByUSI('acmd_TestSP');
sp.Parameters.ItemsByName('USERID').Value = 'username';
sp.Parameters.ItemsByName('STATUSS').Value = '';
sp.Execute();
var stat = sp.Parameters.ItemsByName('STATUSS');
[/javascript]
Пытался реализовать и с ADOCommand и с ADODataset, не получается
Райвис, попробуйте написать так:
[javascript]
call "TestSP"(:pUSERID,:pSTATUSS)
[/javascript]
Есть идеи как параметра правилЬно подать? А то у меня всё ещё не получается :/
Код процедуры
[sql]
create or replace procedure "TestSP" (USERID in varchar2, STATUSS out varchar2) is
begin
if USERID = 'user1' then
statuss := 'OK';
else
statuss := 'NOK';
end if;
end;
[/sql]
Пытался вызвать процедуру без OUT параметра, тоже не получается
Райвис, добрый день.
Описанная Вами проблема передана в департамент разработки продуктов для анализа. Будем сообщать о любой дополнительной информации по данной проблеме.
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
По Вашей проблеме зарегистрирован инцидент №061437.
Ответ добавлен в комментарии по Вашему обращению.
Terrasoft Support Team
Коллеги, приветствую!
Каким образом решилась данная проблема? У меня сейчас очень похожая возникла.
Вадим, какая у Вас сборка?
Конкретно данная проблема была решена, насколько я понял, в ядре в сборке 3.1.1.62
Во вложении примеры вызова.
Дмитрий, а зачем в тексте запроса "begin, end" и почему название процедуры в кавычках?
И ещё вопрос, обязательно ли название параметров начинать с префикса "p"?