ATL OLE DB и Oracle Ole Db Provider
От: Twinsn  
Дата: 11.06.11 14:31
Оценка:
Пытаюсь вызвать хранимую процедуру из базы Oracle 11g через Oracle Ole Db Provider.

При вызове CCommand::Open получаю ошибку DB_ERRORSINCOMMAND
OraOLEDB:ORA-06502: PL/SQL: : буфер символьных строк слишком маленький ошибка числа или значения
ORA-06512: на "DBO.P_TEST", line 6
ORA-06512: на line 1

Строка соединения:
Provider=OraOLEDB.Oracle;Data Source=MyDb;User Id=dbo;Password=pass;SPPrmsLOB=1

Код:
class CTestCall
{
public:
wchar_t m_StreamId[8192];

DEFINE_COMMAND_EX(CTestCall,L"{ CALL P_TEST.TestCall(?) }")

BEGIN_PARAM_MAP(CTestCall)
SET_PARAM_TYPE(DBPARAMIO_OUTPUT)
COLUMN_ENTRY_TYPE(1,DBTYPE_WSTR,m_StreamId)
END_PARAM_MAP()
};

typedef CCommand<CAccessor<CTestCall> > CTestCallCommand;

Текст процедуры:
PACKAGE BODY P_TEST AS

PROCEDURE TestCall(Param OUT VARCHAR2) IS
BEGIN
/* TODO implementation required */
Param:='A12345678901234567890';

END TestCall;

END P_TEST;

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