erwendung von Oracle-Bindungsvariablen mit LIKE in C #
m Rahmen der Bemühungen, die dynamische SQL-Generierung zu beenden und die Verwendung von Bindungsvariablen zu fördern, treten einige Probleme au
Ich frage eine Oracle 9i-Datenbank von einer ASP.NET-Seite mit Oracle Data Providers for .NET ab.
Die Abfrage lautet
sql = "SELECT somedata FROM sometable WHERE machine = :machineName ";
Ich definiere den Oracle-Parameter wie folgt
OracleParameter parameter = new OracleParameter();
parameter.ParameterName = "machineName";
parameter.OracleDbType = OracleDbType.Varchar2;
parameter.Value = machine; //machine is a variable of type string
parameterList.Add(parameter);
Dies funktioniert gut für den Operator "=". Aber ich kann es einfach nicht dazu bringen, mit "LIKE" zu arbeiten. Ich kann die Abfrage nicht so formatieren, dass die Verwendung des Platzhalters "%" akzeptiert wird.
Ich habe versucht
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||% ";
und auch
parameter.Value = machine+'%';
Aber alles, was ich bekomme, sind Ausnahmen von ORA-00911 (unzulässiges Zeichen) und ORA-01036 (unzulässiger Name / unzulässiger Wert).
Was mache ich falsch