【发布时间】:2011-04-16 23:12:50
【问题描述】:
为了停止使用动态 SQL 生成并鼓励使用绑定变量,我遇到了一些问题。
我正在使用 Oracle Data Providers for .NET 从 ASP.NET 页面查询 Oracle 9i 数据库
查询是
sql = "SELECT somedata FROM sometable WHERE machine = :machineName ";
我定义Oracle参数如下
OracleParameter parameter = new OracleParameter();
parameter.ParameterName = "machineName";
parameter.OracleDbType = OracleDbType.Varchar2;
parameter.Value = machine; //machine is a variable of type string
parameterList.Add(parameter);
这适用于“=”运算符。但我似乎无法让它与“LIKE”一起使用。我不知道如何格式化查询以使其接受“%”通配符的使用。
我试过了:
sql = "SELECT somedata FROM sometable WHERE machine LIKE :machineName% ";
sql = "SELECT somedata FROM sometable WHERE machine LIKE ':machineName%' ";
sql = "SELECT somedata FROM sometable WHERE machine LIKE :machineName||% ";
还有:
parameter.Value = machine+'%';
但我得到的只是 ORA-00911(非法字符)和 ORA-01036(非法名称/值)异常。
我做错了什么?
【问题讨论】:
标签: c# asp.net oracle odp.net ora-01036