vb.net带参数的Oracle插入(ORA-00936:缺少表达式) [英] vb.net Oracle Insert with parameters (ORA-00936: missing expression)

查看:150
本文介绍了vb.net带参数的Oracle插入(ORA-00936:缺少表达式)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用oracle参数将数据插入oracle db.我在sql server中也做同样的事情,并且效果很好.但是使用oracle时,我总是会收到ORA-00936:oCom.ExecuteNonQuery上缺少表达式异常.

i would like to use oracle parameters to insert data into the oracle db. i do the same in with sql server and it works fine. But with oracle i always get the ORA-00936: missing expression exception on the oCom.ExecuteNonQuery.

感谢答案..这是我的vb.net代码.

thanks for answers.. here is my vb.net code.

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

最终使用

推荐答案

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

For Oracle, you need to use a colon (:) rather than the "at" sign (@) to indicate a parameter:

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

以后……

p.ParameterName = ":STATUS"

这篇关于vb.net带参数的Oracle插入(ORA-00936:缺少表达式)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆