Re: ATL OLE DB и Oracle Ole Db Provider
От: Аноним  
Дата: 11.06.11 22:51
Оценка:
Здравствуйте, 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>В чем может быть проблема?


Проблема в С++. Выкинь его и используй нормальные инструменты.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.