IDbDataParameter - определение Oracle Clob
У меня есть хранимая процедура с CLOB в качестве входных данных.
Я пытаюсь сделать рефакторинг, поэтому на мою библиотеку Oracle нет прямой ссылки. Когда я создаю параметр из объекта, я получаю обратно объект IDbDataParameter.
Передача строки без определения типа, кажется, работает нормально (установка имени и значения).
Однако текст обрезается на 32767, максимальной длине для Oracle VARCHAR.
Итак, мой вопрос, как мне установить OracleDbType для типа Clob, без необходимости выставлять сборку или использовать отражение. Я попытался использовать бинарный DbType, и это не удалось. Я бы предпочел не загружать библиотеку отражения использования, если есть лучший способ.
Вот пример кода:
''' <summary>
''' Creates a Parameter
''' </summary>
''' <param name="name"></param>
''' <param name="value"></param>
''' <returns></returns>
Public Function CreateParameter(ByVal name As String, ByVal value As String) As IDbDataParameter
Dim parameter As IDbDataParameter = m_Db.CreateParameter()
parameter.ParameterName = name
parameter.Value = value
Return parameter
End Function
И от звонящего. параметр p_notes - это то, что я хочу быть CLOB.
oDAL = New DAL.DataAccessLayer(m_BSL)
Dim parameters As New List(Of IDbDataParameter)
parameters.Add(oDAL.CreateParameter("p_no", compNo))
parameters.Add(oDAL.CreateParameter("p_sys", m_BSL.CurrentSystem.Description.ToString))
parameters.Add(oDAL.CreateParameter("p_notes", notes))
parameters.Add(oDAL.CreateParameter("p_chuser", m_BSL.CurrentUser.ToString))
oDAL.Exec_SP("P_UPDATE_MASTSTAT_NOTES", parameters.ToArray())
Так есть ли способ установить DbType таким образом, чтобы он назначал OracleDbType для CLOB?