Я пытаюсь вызвать хранимую процедуру с параметрами входа и выхода из ADO
Сначала маленький пакет и SP:
CREATE OR REPLACE PACKAGE CD_package IS
TYPE CD_cursor IS REF CURSOR;
PROCEDURE CDList ( pCost IN Number, pList OUT CD_Cursor ) ;
END CD_package;
/
CREATE OR REPLACE PACKAGE BODY CD_package AS
PROCEDURE CDList ( pCost IN Number, pList OUT CD_Cursor ) IS
-- returns a list of titles available at cost pCost
BEGIN
OPEN pList FOR
SELECT CURRENT_TIMESTAMP FROM DUAL;
END CDList;
END CD_package;
И мой код Delphi:
With SP do
begin
Close;
Connection := ADOConnection1;
ProcedureName := 'CD_package.CDList';
Parameters.Clear;
Parameters.CreateParameter('pCost', ftFloat, pdInput, 0, 2.2);
Open;
Last;
end; // with
SP I TADOStoredProc и ADOConnection1 является действительным соединением с моей базой данных Oracle.
В соответствии с сайтами seval вы НЕ должны создавать процедуру OUT.Но здесь я попадаю в ловушку 22.
Если я опускаю параметр, я выдаю ошибку об отсутствующем параметре: 
Если я добавлю параметр Cursor
...
Parameters.CreateParameter('pList', ftCursor, pdOutput, -1, NULL);
...
Я получаю сообщение об ошибке, что параметры не объявлены правильно 
Очевидное было бы далеко от ADO, но это невозможнопоскольку идентификатор программы заполнен ссылками на _RecordSet
Итак, вкратце, как мне вызвать SP в Oracle с использованием ADO?
Единственными фиксированными вещами являются Delphi и ADO.Вы можете изменить TADOStoredProc на TADOCommand или запрос.Пока это работает.