Здравствуйте, Twinsn, Вы писали:
T>Пытаюсь вызвать хранимую процедуру из базы Oracle 11g через Oracle Ole Db Provider.
T>При вызове CCommand::Open получаю ошибку DB_ERRORSINCOMMAND T>OraOLEDB:ORA-06502: PL/SQL: : буфер символьных строк слишком маленький ошибка числа или значения T>ORA-06512: на "DBO.P_TEST", line 6 T>ORA-06512: на line 1
T>Строка соединения: T>Provider=OraOLEDB.Oracle;Data Source=MyDb;User Id=dbo;Password=pass;SPPrmsLOB=1
T>Код: T>class CTestCall T>{ T>public: T> wchar_t m_StreamId[8192];
T> DEFINE_COMMAND_EX(CTestCall,L"{ CALL P_TEST.TestCall(?) }")
T> BEGIN_PARAM_MAP(CTestCall) T> SET_PARAM_TYPE(DBPARAMIO_OUTPUT) T> COLUMN_ENTRY_TYPE(1,DBTYPE_WSTR,m_StreamId) T> END_PARAM_MAP() T>};
T>typedef CCommand<CAccessor<CTestCall> > CTestCallCommand;
T>Текст процедуры: T>PACKAGE BODY P_TEST AS
T> PROCEDURE TestCall(Param OUT VARCHAR2) IS T> BEGIN T> /* TODO implementation required */ T> Param:='A12345678901234567890';
T> END TestCall;
T>END P_TEST;
T>В чем может быть проблема?
Проблема в С++. Выкинь его и используй нормальные инструменты.