Существует ли в террасофт возможность вызова хранимых процедур для 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;
что не так?
Нравится
Илья, попробуйте запрос заменить на:
var SQL = 'BEGIN TSCRM.pa2_check_tbl_account(:pID,:pPOUT); END;';
Больше ничего не меняйте!