Estoy utilizando "Parameters" en mis sentencias de SQL para realizar operaciones en la base de datos. Cuando trabajo con SQL Server me funciona perfecto, pero cuando trabajo con ORACLE me da el siguiente error: "
ORA-01036: illegal variable name/number".
Supuse que es porque las variables en ORACLE no se declaran con @, pero les quité la @ y aún así sigue sin funcionar.
El código que utilizo es el siguiente:
Código:
Dim Parametros(4) As Data.OracleClient.OracleParameter : Dim intContador As Int16 = 0
Parametros(intContador) = New Data.OracleClient.OracleParameter
Parametros(intContador).ParameterName = "@MANDT"
Parametros(intContador).DbType = Data.DbType.String
Parametros(intContador).Value = _strMANDT
intContador += 1S
Parametros(intContador) = New Data.OracleClient.OracleParameter
Parametros(intContador).ParameterName = "@Ruta"
Parametros(intContador).DbType = Data.DbType.String
Parametros(intContador).Value = _strRuta
intContador += 1S
Parametros(intContador) = New Data.OracleClient.OracleParameter
Parametros(intContador).ParameterName = "@Fecha"
Parametros(intContador).DbType = Data.DbType.String
Parametros(intContador).Value = _strFecha
intContador += 1S
Parametros(intContador) = New Data.OracleClient.OracleParameter
Parametros(intContador).ParameterName = "@Proveedor_ID"
Parametros(intContador).DbType = Data.DbType.String
Parametros(intContador).Value = _decProveedorID
intContador += 1S
Parametros(intContador) = New Data.OracleClient.OracleParameter
Parametros(intContador).ParameterName = "@No_Factura"
Parametros(intContador).DbType = Data.DbType.String
Parametros(intContador).Value = _decNoFactura
strSQL = "INSERT INTO SAPR3.ZDatos_PV_CxP (MANDT,Ruta,Fecha,Proveedor_ID,No_Factura) VALUES (@MANDT,@Ruta,@Fecha,@Proveedor_ID,@No_Factura)"
daDataAdapter2 = New Data.OracleClient.OracleDataAdapter
daDataAdapter2.InsertCommand = New Data.OracleClient.OracleCommand(strSQL, cnnOracle)
daDataAdapter2.InsertCommand.Parameters.Clear()
For i As Integer = 0 To Parametros.Length - 1
daDataAdapter2.InsertCommand.Parameters.Add(Parametros(i))
Next
If cnnOracle.State = Data.ConnectionState.Closed Then cnnOracle.Open()
daDataAdapter2.InsertCommand.ExecuteNonQuery()
If cnnOracle.State = Data.ConnectionState.Open Then cnnOracle.Close()
¿Alguna idea de que estoy haciendo mal?