Хорошо, мне действительно нужно найти способ сделать это с помощью строки для закрытия вместо использования запроса на обновление, чтобы сделать все.
Dim theXMLCode As OracleClob
Dim OracleConnection2 As New OracleConnection()
Dim dr2 As OracleDataReader
Dim holdXML As String = ""
Public Function connectToOracleDB2() As Boolean
OracleConnection2.ConnectionString = "User Id=" & dbUserId & ";Password=" & dbPassword & ";Data Source=(DESCRIPTION=(ADDRESS_LIST=" & _
"(ADDRESS=(PROTOCOL=TCP)(HOST=" & dbHost & ")(PORT=" & dbPort & ")))" & _
"(CONNECT_DATA=(SERVICE_NAME=" & dbServiceName & ")))"
Try
OracleConnection2.Open()
Return True
Catch ee As Exception
OracleConnection2.Close()
Return False
End Try
End Function
Dim strSQL = "UPDATE CSR.TARGET ces " & _
"SET (STATUS_CODE, COMPLETE_DATE, DATA) = " & _
"(SELECT 'ERROR', '', (:XML_DATA) " & _
"FROM CSR.SOURCE C " & _
"WHERE (c.EID = ces.EID) " & _
"AND c.STATUS_CODE = 'ERROR') " & _
"WHERE EXISTS (SELECT 1 " & _
"FROM CSR.SOURCE C " & _
"WHERE (c.EID = ces.EID) " & _
"AND c.STATUS_CODE = 'ERROR')"
Try
Dim parmData As New OracleParameter
With parmData
.Direction = ParameterDirection.Input
.OracleDbType = OracleDbType.Clob
.ParameterName = "XML_DATA"
.Value = holdXML
End With
OracleCommand2.Parameters.Add(parmData)
OracleCommand2.CommandText = strSQL
OracleCommand2.ExecuteNonQuery()
Но я получаю ошибку:
ОШИБКА: операция недопустима из-за текущего состояния объекта.
На линии:
OracleCommand2.ExecuteNonQuery()
Любая помощь была бы великолепна, если бы эта штука работала: о)
David