Representa un parámetro para un objeto
OracleCommand y, opcionalmente, su asignación a un objeto
DataColumn. Esta clase no se puede heredar.
Espacio de nombres: System.Data.OracleClient
Ensamblado: System.Data.OracleClient (en system.data.oracleclient.dll)
Visual Basic (Declaración)
Public NotInheritable Class OracleParameter
Inherits DbParameter
Implements ICloneable, IDbDataParameter, IDataParameter
Dim instance As OracleParameter
public sealed class OracleParameter : DbParameter, ICloneable, IDbDataParameter, IDataParameter
public ref class OracleParameter sealed : public DbParameter, ICloneable, IDbDataParameter, IDataParameter
public final class OracleParameter extends DbParameter implements ICloneable, IDbDataParameter,
IDataParameter
public final class OracleParameter extends DbParameter implements ICloneable, IDbDataParameter,
IDataParameter
Los nombres de parámetros no distinguen entre mayúsculas y minúsculas.
Cuando se realiza una consulta en una base de datos de Oracle mediante el proveedor Microsoft OLE DB para Oracle (MSDAORA) y el proveedor de datos de .NET Framework para ODBC, el uso de la cláusula LIKE para consultar los valores en campos de longitud fija puede no devolver todas las coincidencias esperadas. El motivo es que cuando Oracle compara los valores de los campos de longitud fija con una cláusula LIKE, hace coincidir toda la longitud de la cadena, incluyendo los espacios finales de relleno que pueda haber. Por ejemplo, si una tabla de una base de datos de Oracle contiene un campo denominado "Field1" que se define como char(3) y se escribe el valor "a" en una fila de esa tabla, el siguiente código no devolverá la fila.
Dim queryString As String = "SELECT * FROM Table1 WHERE Field1 LIKE ?"
Dim command As OleDbCommand = New OleDbCommand(queryString, connection)
command.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a"
Dim reader As OleDbDataReader = command.ExecuteReader()
string queryString = "SELECT * FROM Table1 WHERE Field1 LIKE ?";
OleDbCommand command = new OleDbCommand(queryString, connection);
command.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a";
OleDbDataReader reader = command.ExecuteReader();
Esto se produce porque Oracle almacena los valores de columna como "a " (rellenando "a" con espacios finales hasta alcanzar una longitud fija de campo igual a 3), de modo que Oracle no considera "a " una coincidencia para el valor de parámetro "a" cuando se utiliza una comparación LIKE de campos de longitud fija.
Para resolver este problema, anexe un carácter comodín de porcentaje ("%") al valor de parámetro ("a%") o utilice una comparación = de SQL en su lugar.
En el ejemplo siguiente se crean varias instancias de OracleParameter a través de la colección OracleParameterCollection incluida en OracleDataAdapter. Estos parámetros se utilizan para seleccionar datos de la base de datos y colocarlos en DataSet. En este ejemplo se supone que ya se han creado un objeto DataSet y un objeto OracleDataAdapter utilizando el esquema, los comandos y la conexión adecuados.
Public Sub AddOracleParameters()
' ...
' create dataSet and adapter
' ...
adapter.SelectCommand.Parameters.Add("pEName", OracleType.VarChar, 80).Value = "Smith"
adapter.SelectCommand.Parameters.Add("pEmpNo", OracleType.Int32).Value = 7369
adapter.Fill(dataSet)
End Sub
public void AddOracleParameters()
{
// ...
// create dataSet and adapter
// ...
adapter.SelectCommand.Parameters.Add("pEName", OracleType.VarChar, 80).Value = "Smith";
adapter.SelectCommand.Parameters.Add("pEmpNo", OracleType.Int32).Value = 7369;
adapter.Fill(dataSet);
}
System.Object
System.MarshalByRefObject
System.Data.Common.DbParameter
System.Data.OracleClient.OracleParameter
Seguridad para subprocesos
Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition
.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.
.NET Framework
Compatible con: 2.0, 1.1