Oracle: вызов SP с параметром Out - PullRequest
0 голосов
/ 06 декабря 2018

Прежде всего мои знания об 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?Могу ли я установить какую-то глобальную настройку, чтобы мне не приходилось передавать этот параметр?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...