首先,我对Oracle的了解非常有限。
我已经使用Oracle继承了一个大型的Delphi项目,该项目已升级到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”
然后从SQL Developer(exec DDK.GetAccessObjects()
)调用SP,我得到相同的错误。
我可以阅读并理解以下错误消息:缺少参数。但是令我震惊的是,这段代码已经运行了多年。至少5。
我至少有10个带有此“问题”的SP,因此这不是一个简单的错字。
因此,简而言之,我如何从这里继续前进? 我怎么称呼这个SP? 我可以设置某种全局设置,这样就不必传递此参数了吗?