PJ.*_*PJ. 14 c# asp.net oracle odp.net ora-01036
作为停止使用动态SQL生成并鼓励使用绑定变量的努力的一部分,我遇到了一些问题.
我正在使用Oracle Data Providers for .NET从ASP.NET页面查询Oracle 9i数据库
查询是
sql = "SELECT somedata FROM sometable WHERE machine = :machineName ";
Run Code Online (Sandbox Code Playgroud)
我定义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);
Run Code Online (Sandbox Code Playgroud)
这适用于"="运算符.但我似乎无法让它与"喜欢"一起工作.我不知道如何格式化查询,以便它接受"%"通配符的使用.
我试过了:
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||% ";
Run Code Online (Sandbox Code Playgroud)
并且:
parameter.Value = machine+'%';
Run Code Online (Sandbox Code Playgroud)
但我得到的是ORA-00911(非法字符)和ORA-01036(非法名称/值)例外.
我究竟做错了什么?
OMG*_*ies 28
尝试:
sql = "SELECT somedata FROM sometable WHERE machine LIKE :machineName || '%' ";
Run Code Online (Sandbox Code Playgroud)
由于BIND变量,它周围不需要单引号.但%不是,所以我希望它需要封装.
归档时间: |
|
查看次数: |
12033 次 |
最近记录: |