Прежде всего мои знания об Oracle очень ограничены.
Я унаследовал большой проект Delphi с использованием Oracle, он был обновлен до Oracle Cloud.И теперь у меня есть некоторые проблемы с вызовом хранимой процедуры:
Давайте начнем с SP (он помещен в пакет)
PROCEDURE GetAccessObjects(AAccessObjects OUT CURSOR_TYPE);
Затем код Delphi:
procedure TDBApi.GetAccessObjects(var ResultSet: TADOStoredProc);
var
SP: TDbStoredProc;
begin
SP := CreateStoredProc(SQLPackage + 'GetAccessObjects');
try
SP.MaxRecords := mrAll;
SP.Open;
ResultSet := SP;
except
SP.Free;
raise;
end;
end;
При выполнении кода Delphi я получаю ошибку
PLS-00306: неверный номер или типы аргументов при вызове 'GETACCESSOBJECTS'
И вызов SPот разработчика SQL (exec DDK.GetAccessObjects()
) я получаю ту же ошибку.
Я могу прочитать и понять сообщение об ошибке: Отсутствует параметр.Но что меня удивляет, так это то, что этот код работает уже много лет.Как минимум 5.
У меня есть как минимум 10 SP с этой «проблемой», так что это не простая опечатка.
Итак, вкратце, как мне двигаться дальше?Как я могу назвать это SP?Могу ли я установить какую-то глобальную настройку, чтобы мне не приходилось передавать этот параметр?