作爲努力停止使用動態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