Mise à jour : - Apparemment après quelques recherches (car je ne travaille pas avec Oracle) ADODB ne prend pas en charge adVariant
(qui est 12
) et vous devez utiliser adVarChar
(qui est 200
) à la place.
Voir A :ASP classique appelant la procédure stockée Oracle avec le pilote OraOleadb
Laissez le reste de la réponse ci-dessous car il est probablement toujours pertinent une fois ce problème résolu.
La cause de cette erreur particulière est généralement une incompatibilité de type de données une fois que l'ADODB parle au fournisseur défini par la connexion.
Il suffit de regarder la définition de la procédure dans Oracle par rapport à votre ADODB.Command
objet je peux voir que le p_return
paramètre semble incorrect. J'en parle dans une réponse précédente
à une question similaire
.
Selon mappage des types de données
(une excellente ressource pour le mappage des types de données dans ADO) adInteger
(qui est 3
) correspond à Int
dans Oracle pas Number
. À la place, vous devez utiliser adNumeric
(qui est 131
) qui devrait corriger cette erreur particulière.
Essayez de changer cette ligne
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 3, 2)
à
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 131, 2)
Liens utiles
- A :Utilisation d'une procédure stockée en ASP classique .. exécuter et obtenir des résultats
- A :Erreur ADODB.Parameters '800a0e7c' L'objet de paramètre n'est pas correctement défini. Des informations incohérentes ou incomplètes ont été fournies
(recommandez ceci pour apprendre à utiliser
METADATA
dansglobal.asa
pour que les constantes nommées ADO soient toujours disponibles pour une application Web ASP)