Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak zwrócić Oracle Cursor z zapisanego proc jako Client Dataset za pomocą Delphi i DBExpress?

Jak wspomniał paulsm4 w this answer , Delphi nie dba o pobieranie deskryptorów parametrów procedur składowanych, więc musisz to zrobić sam. Aby pobrać parametry procedury składowanej Oracle z pakietu, możesz spróbować użyć GetProcedureParams metoda wypełniania listy deskryptorami parametrów i LoadParamListItems procedura wypełnij tą listą Params kolekcja. W kodzie może to wyglądać następująco.

Zwróć uwagę, że poniższy kod został napisany w przeglądarce zgodnie z dokumentacją, więc nie został przetestowany. I tak, o uwolnieniu ProcParams jest to wykonywane przez FreeProcParams procedura:

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie wartości sekwencyjnych dla klucza podstawowego w zapytaniu INSERT

  2. Wywołanie funkcji PL SQL z parametrem obiektu w java

  3. Dlaczego wybieranie określonych kolumn i wszystkich innych jest złe w Oracle SQL?

  4. Użyj dbms_xmldom.writetofile bez nazwanego katalogu

  5. cx_Oracle 'ORA-01843:niepoprawny miesiąc' z parametrem Unicode