Страница 1 из 1

Value length exceeds the parameter size (Devart.Data.Oracle)

Добавлено: 12 апр 2018, 15:43
t0pdevice
Ошибка при попытке выполнить функцию в Oracle через dotConnect for Oracle от Devart.
Функция имеет входной параметр типа varchar2, при выполнении запроса напрямую в базу через другой софт с такими же входными параметрами проблем нету.
На вход передаётся около 3150 байт.

Проблема на стороне Devart или Stimulsoft неправильно передает параметр?

Код: Выделить всё

Message:     Value length exceeds the parameter size
Source:      Devart.Data.Oracle
StackTrace:
   в Devart.Data.Oracle.OracleParameter.a(OracleDbType A_0, Object A_1, Object A_2, Byte[] A_3, Hashtable A_4, Int32 A_5, Int32 A_6, Int32 A_7, Int32 A_8, Int32 A_9, Boolean A_10, OracleConnection A_11, ParameterDirection A_12, OracleType A_13, b0 A_14, Boolean& A_15)
   в Devart.Data.Oracle.OracleParameter.a(b5& A_0, Boolean A_1, OracleConnection A_2, Byte[] A_3, Hashtable A_4, b0 A_5, Boolean& A_6, Int32 A_7)
   в Devart.Data.Oracle.OracleCommand.a(cr A_0, Int32 A_1, OracleParameterCollection A_2, b0 A_3, Boolean& A_4)
   в Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
   в Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
   в Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
   в System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   в System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   в System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   в Devart.Data.Oracle.OracleDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   в System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   в Stimulsoft.Report.Dictionary.StiDataAdapterHelper.Fill(StiDictionary dictionary, DbDataAdapter dataAdapter, DataTable dataTable, Boolean schemaOnly)

Re: Value length exceeds the parameter size (Devart.Data.Ora

Добавлено: 12 апр 2018, 16:21
Aleksey
Здравствуйте,

По размеру должно проходить. Ответ на их форуме:
https://forums.devart.com/viewtopic.php?t=24226
The size of the VARCHAR2 parameter in Oracle can be up to 32KB (not more). You should use the CLOB data type for bigger data. Please use the dbMonitor tool that performs per-component tracing of database events such as commit, rollback, SQL statement execute etc to find out the data type of the parameter which is sent to server:
Download link: http://www.devart.com/dbmonitor/dbmon3.exe
Documentation: http://www.devart.com/dotconnect/oracle ... nitor.html

Спасибо.

Re: Value length exceeds the parameter size (Devart.Data.Ora

Добавлено: 13 апр 2018, 12:34
t0pdevice
Да, я видел эту тему.
Если выполнять запрос и передавать большую строку в функцию через PLSQL Developer, к примеру, все работает.
А через Stimulsoft такая ошибка.
Сейчас попробовал выполнить функцию с той же строкой в параметре не через Stimulsoft, а напрямую в приложении через Devart - ошибок не было.

Re: Value length exceeds the parameter size (Devart.Data.Ora

Добавлено: 17 апр 2018, 00:10
Aleksey
Здравствуйте,

Необходимо некоторе время для анализа проблемы.

Спасибо.

Re: Value length exceeds the parameter size (Devart.Data.Ora

Добавлено: 25 апр 2018, 11:19
t0pdevice
Добрый день.
Не смотрели еще?

Re: Value length exceeds the parameter size (Devart.Data.Ora

Добавлено: 27 апр 2018, 17:48
Aleksey
Здравствуйте,

Еще занимаемся данным вопросом.

Спасибо.

Re: Value length exceeds the parameter size (Devart.Data.Ora

Добавлено: 15 май 2018, 16:07
t0pdevice
Обновился до последней версии 2018.2.2.0 и изменили в отчёте длину для параметра, после этого проблема ушла.
Изображение

Re: Value length exceeds the parameter size (Devart.Data.Ora

Добавлено: 17 май 2018, 09:52
Aleksey
Здравствуйте,

Спасибо за информацию.