作为努力停止使用动态SQL生成并鼓励使用绑定变量的一部分,我遇到了一些问题。在C#中LIKE中使用Oracle绑定变量
我从一个ASP.NET页面使用Oracle数据提供程序.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(非法名称/值)例外。
我在做什么错?
重复此问题:http://stackoverflow.com/questions/1412023/constructing-a-good-search-query-using-system-data-oracleclient – CodingGorilla 2010-09-24 19:48:32