2

我想使用 oracle 参数将数据插入到 oracle 数据库中。我在 sql server 上做同样的事情,它工作正常。但是对于 oracle,我总是在 oCom.ExecuteNonQuery 上得到 ORA-00936:缺少表达式异常。

感谢您的回答.. 这是我的 vb.net 代码。

Using connOMS = New OracleConnection(connectionStringOMS)
Try
    connOMS.Open()

    Dim cmdstr As String = "INSERT INTO ARCHIVE_FEEDBACK(STATUS) VALUES(@STATUS)"

    Using Ocom As OracleCommand = New OracleCommand(cmdstr, connOMS)
        Dim p As OracleParameter
        p = New OracleParameter()
        p.Direction = ParameterDirection.InputOutput
        p.OracleDbType = OracleDbType.Varchar2
        p.ParameterName = "@STATUS"
        p.Value = "A"
        Ocom.Parameters.Add(p)

        Dim iRet As Integer = Ocom.ExecuteNonQuery
        If iRet > 0 Then
            Return True
        Else
            Return False
        End If
    End Using

    Catch ex As ApplicationException
        '...
    Catch orex As OracleException
        '...
    Finally

End Try

结束使用

4

1 回答 1

3

对于 Oracle,您需要使用冒号 ( :) 而不是“at”符号 ( @) 来指示参数:

Dim cmdstr As String = "INSERT INTO ARCHIVE_FEEDBACK(STATUS) VALUES(:STATUS)"

后来……

p.ParameterName = ":STATUS"
于 2013-05-03T14:26:53.500 回答