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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage