Actualización: - Aparentemente, después de investigar un poco (ya que no trabajo con Oracle) ADODB no es compatible con adVariant
(que es 12
) y deberías usar adVarChar
(que es 200
) en su lugar.
Consulte A:ASP clásico llamando al procedimiento almacenado de Oracle con el controlador OraOleadb
Dejando el resto de la respuesta a continuación, ya que probablemente siga siendo relevante una vez que se solucione este problema.
La causa de ese error en particular suele ser una falta de coincidencia del tipo de datos una vez que ADODB se comunica con el proveedor definido por la conexión.
Solo mirando la definición del procedimiento en Oracle en comparación con su ADODB.Command
objeto puedo ver que el p_return
el parámetro parece ser incorrecto. Hablo de esto en una respuesta anterior
a una pregunta similar
.
Según Asignación de tipos de datos
(un gran recurso para la asignación de tipos de datos en ADO) adInteger
(que es 3
) se asigna a Int
en Oracle no Number
. En su lugar, debe usar adNumeric
(que es 131
) que debería corregir ese error en particular.
Intenta cambiar esta línea
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 3, 2)
a
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 131, 2)
Enlaces útiles
- R:Usar el procedimiento almacenado en ASP clásico... ejecutar y obtener resultados
- R:ADODB.Error de parámetros '800a0e7c' El objeto de parámetro no está definido correctamente. Se proporcionó información inconsistente o incompleta
(recomiende esto para aprender a usar
METADATA
englobal.asa
tener constantes con nombre de ADO siempre disponibles para una aplicación web ASP)