Пытаюсь вызвать хранимую процедуру из базы 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;
В чем может быть проблема?
Здравствуйте, Twinsn, Вы писали:
T>В чем может быть проблема?
Вот
эта библиотека очень проста в использовании.