IDbDataParameter - 定义Oracle Clob

时间:2018-05-11 17:41:20

标签: vb.net oracle odp.net-managed

我有一个存储过程,其中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?

0 个答案:

没有答案