sql >> Base de Datos >  >> RDS >> Oracle

ORA-01008:no todas las variables están vinculadas. ellos están atados

Sé que esta es una pregunta antigua, pero no se ha abordado correctamente, por lo que la estoy respondiendo para otras personas que puedan tener este problema.

Por defecto, ODP.net de Oracle vincula las variables por posición y trata cada posición como una nueva variable.

Tratar cada copia como una variable diferente y establecer su valor varias veces es una solución y una molestia, como mencionó furman87, y podría generar errores, si está tratando de reescribir la consulta y cambiar las cosas.

La forma correcta es establecer la propiedad BindByName de OracleCommand en verdadero como se muestra a continuación:

var cmd = new OracleCommand(cmdtxt, conn);
cmd.BindByName = true;

También puede crear una nueva clase para encapsular OracleCommand estableciendo BindByName en verdadero en la creación de instancias, de modo que no tenga que establecer el valor cada vez. Esto se discute en esta publicación