oracle clob参数转换为字符串在asp.net中挂起

时间:2013-03-11 08:55:23

标签: asp.net oracle odp.net

请找到此代码。它正在我的本地机器上正常工作。它被复制到Windows Server 2008(64位)。它工作很好很多天。但是现在,它已经停了20分钟。相同的代码在我的机器上快速工作。如果我将clob转换为varchar,它将起作用,但它不会支持超过32 K.我更新了oracle客户端,现在它也挂起了。

    Dim cn As New OracleConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
    Dim cmd As New OracleCommand
    cn.Open()


    cmd.Connection = cn
    cmd.CommandType = Data.CommandType.StoredProcedure

        cmd.CommandText = "Inet_Pkg_Menu.TopMenu"


    cmd.Parameters.Add("pBrCode", OracleDbType.Int32).Direction = Data.ParameterDirection.Input
    cmd.Parameters.Add("pRes", OracleDbType.Clob).Direction = Data.ParameterDirection.Output

    cmd.Parameters(0).Value = Session("user_code")

    cmd.ExecuteNonQuery()

    Dim s As String
    Dim olob As OracleClob


    olob = CType(cmd.Parameters("pRes").Value, OracleClob)

        s = System.Convert.ToString(olob.Value) 'Hanged line

1 个答案:

答案 0 :(得分:0)

我正在使用Oracle Clob并且它非常简单,并且不需要进行类型转换,只需将其假设为asp.net中的字符串,这是一个示例:

Dim sql =“select xmlagg(XMLElement(”user“,xmlattributes(user_id”user_id“)))。来自用户的”getClobVal()“这只是返回clob值的示例

Dim adp As New Data.OleDb.OleDbDataAdapter(sql,MyConnectionString)

Dim dt As New DataTable

adp.Fill(DT)

Dim data As String = dt.Rows [0] [0] .toString()

现在在数据变量中你有结果