我有一个给出的参数化查询
" ORA-01008:不是所有变量绑定"错误"。
Dim Conn
Dim Cmd
Dim RS
Dim strID
Dim param
strID = Request.QueryString("id")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnect
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.CommandText = "SELECT column_name FROM table WHERE (id = :id)"
Set param = Cmd.CreateParameter("id", adVarChar , adParamInput ,50 , strID)
Cmd.Parameters.Append param
Cmd.CommandType = adCmdText
Set Cmd.ActiveConnection = Conn
Set RS = Cmd.Execute()
我试图通过几种方式在语法中修改,然后它给出
ora-00936:缺少表达式
请帮助我摆脱困境。对于您的信息,连接没有问题,因为我能够与普通查询连接。
需要检查的几件事:
1)尝试对Strid的值进行硬编码,因此请代替:
strID = Request.QueryString("id")
尝试
strID = 100
2)仔细检查您的列定义,并确保您从Varchar(50)字段中选择
3)确保您在ADO常数定义的页面上引用了adovbs。
谢谢@lankymart,幸运的是,我为此提供了解决方案。这对我来说很好,很抱歉发布答案的延迟,我的问题在2小时前解决了。
Dim Conn
Dim Cmd
Dim RS
Dim strID
Dim param
strID = Request.QueryString("id")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnect
Set Cmd = Server.CreateObject("ADODB.Command")
With Cmd
.CommandText = "SELECT column_name FROM table WHERE id = ?"
.Parameters.Append .CreateParameter(,200, 1 ,50 ,strID)
Set .ActiveConnection = Conn
End With
Set RS = Cmd.Execute()