Uso de variáveis de ligação do Oracle com LIKE em C #
Como parte de um esforço para parar de usar a geração dinâmica de SQL e incentivar o uso de variáveis de ligação, estou enfrentando alguns problemas.
Estou consultando um banco de dados Oracle 9i em uma página ASP.NET usando o Oracle Data Providers for .NET
A consulta é
sql = "SELECT somedata FROM sometable WHERE machine = :machineName ";
Defino o parâmetro Oracle da seguinte maneira
OracleParameter parameter = new OracleParameter();
parameter.ParameterName = "machineName";
parameter.OracleDbType = OracleDbType.Varchar2;
parameter.Value = machine; //machine is a variable of type string
parameterList.Add(parameter);
Isso funciona bem para o operador "=". Mas eu simplesmente não consigo fazê-lo funcionar com "LIKE". Não sei como formatar a consulta para que ela aceite o uso do curinga "%".
Eu tentei:
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||% ";
e também:
parameter.Value = machine+'%';
mas tudo o que recebo são exceções ORA-00911 (caractere ilegal) e ORA-01036 (nome / valor ilegal).
O que estou fazendo errado?