Хранимые процедуры для ORACLE

Существует ли в террасофт возможность вызова хранимых процедур для Oracle? Пытался использовать примеры с форума, используя ExecuteCustomSQL, но параметры не только не возвращаются, но даже не передаются в процедуру.

var Parameters = CreateSPParameters();
CreateSPParameter(Parameters, 'ID', pdtString, '1111111111111111');
CreateSPParameter(Parameters, 'POUT', pdtInteger, 0);
Parameters.ItemsByName('POUT').ParamType = 1;

тут Parameters.Items(0).Value в дебагере нормально '1111111111111111'
Parameters.Items(1).Value тоже нормально - 0

var SQL = 'BEGIN TSCRM.pa2_check_tbl_account(:ID,:POUT); END;';
Connector.DBEngine.ExecuteCustomSQL(SQL, Parameters);

После ExecuteCustomSQL в Parameters значение всех параметров неопределено.
При этом процедура запускается, raise оттуда идет, но raise_application_error (-20001, 'PID '||ID);
ID не вернет.

вот процедура:

create or replace procedure pa2_check_tbl_account
(
ID in "tbl_Account"."ID"%type,
POUT in out number
) is

begin
POUT := 5;
raise_application_error (-20001, 'PID '||ID);
end;

что не так?

Нравится

2 комментария

Илья, попробуйте запрос заменить на:

var SQL = 'BEGIN TSCRM.pa2_check_tbl_account(:pID,:pPOUT); END;';

Больше ничего не меняйте!

Огромное спасибо. Вчера весь день убил, пытаясь найти в чем ошибка. Теперь все получилось.

Показать все комментарии