请找到此代码。它正在我的本地机器上正常工作。它被复制到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
答案 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()
现在在数据变量中你有结果