Como paulsm4 mencionado em
this answer
, o Delphi não se preocupa em obter descritores de parâmetros de procedimentos armazenados, e assim você precisa fazer isso sozinho. Para obter parâmetros do procedimento armazenado Oracle de um pacote, você pode tentar usar o GetProcedureParams
método para preencher a lista com descritores de parâmetros e com o LoadParamListItems
procedimento preencha com essa lista Params
coleção. No código, pode parecer a seguir. Observe que o código a seguir foi escrito apenas no navegador de acordo com a documentação, portanto, não foi testado. E sim, sobre liberar
ProcParams
variável, isso é feito pelo FreeProcParams
procedimento:var
ProcParams: TList;
StoredProc: TSQLStoredProc;
...
begin
...
StoredProc.PackageName := 'KP_DATASNAPTEST';
StoredProc.StoredProcName := 'GetFaxData';
ProcParams := TList.Create;
try
GetProcedureParams('GetFaxData', 'KP_DATASNAPTEST', ProcParams);
LoadParamListItems(StoredProc.Params, ProcParams);
StoredProc.ParamByName('abbr').AsString := 'ZZZTOP';
StoredProc.Open;
finally
FreeProcParams(ProcParams);
end;
...
end;