【发布时间】:2011-08-04 22:08:53
【问题描述】:
我有一些存储过程要执行,它们使用dbms_output.put_line() 将数据放入输出缓冲区。
我知道我需要使用 dbms_output.get_line(:line, :status) 来检索该输出。
我使用System.Data.OracleClient 来避免Oracle 部署的麻烦。
那么我在下面的代码中做错了什么?
Dim cmdSproc As OracleCommand = cnOracle.CreateCommand()
Dim strOracle As New OracleString()
Dim opaLine As New OracleParameter("lineOut", OracleType.VarChar, 255)
opaLine.Direction = ParameterDirection.Output
Dim opaStatus As New OracleParameter("status", 0)
cmdSproc.CommandText = "begin dbms_output.get_line(:lineOut,:status); end;"
cmdSproc.Parameters.Add(opaLine)
cmdSproc.Parameters.Add(opaStatus)
Dim strOutput As String = ""
strOracle = "0"
Try
While strOracle = "0"
cmdSproc.ExecuteOracleNonQuery(strOracle)
strOutput = strOutput & strOracle.ToString() & vbNewLine
End While
Catch ex As Exception
MsgBox(ex.Message)
End Try
【问题讨论】:
标签: vb.net oracle10g dbms-output