IDbDataParameter - определение Oracle Clob - PullRequest
0 голосов
/ 11 мая 2018

У меня есть хранимая процедура с 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?

...