Aktualisierung: - Anscheinend nach ein wenig Recherche (da ich nicht mit Oracle arbeite) ADODB unterstützt adVariant nicht (das ist 12 ) und Sie sollten adVarChar verwenden (das ist 200 ) stattdessen.
Siehe A:Classic ASP Calling Oracle Stored Procedure with OraOleadb Driver
Lassen Sie den Rest der Antwort unten, da er wahrscheinlich immer noch relevant ist, sobald dieses Problem behoben ist.
Die Ursache dieses speziellen Fehlers ist normalerweise eine Nichtübereinstimmung des Datentyps, sobald die ADODB mit dem durch die Verbindung definierten Anbieter kommuniziert.
Betrachten Sie einfach die Prozedurdefinition in Oracle im Vergleich zu Ihrem ADODB.Command Objekt kann ich sehen, dass der p_return Parameter scheint falsch zu sein. Ich spreche darüber in einer vorherigen Antwort
auf eine ähnliche Frage
.
Gemäß Datentypzuordnung
(eine großartige Ressource für die Datentypzuordnung in ADO) adInteger (das ist 3 ) wird auf Int abgebildet in Oracle nicht Number . Stattdessen sollten Sie adNumeric verwenden (das ist 131 ) was diesen speziellen Fehler beheben sollte.
Versuchen Sie, diese Zeile zu ändern
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 3, 2)
zu
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 131, 2)
Nützliche Links
- A:Gespeicherte Prozeduren in klassischem ASP verwenden ... ausführen und Ergebnisse erhalten
- A:ADODB.Parameters error '800a0e7c' Parameterobjekt ist falsch definiert. Es wurden widersprüchliche oder unvollständige Informationen bereitgestellt
(Empfehlen Sie dies, um zu lernen, wie man
METADATAverwendet inglobal.asaum benannte ADO-Konstanten immer für eine ASP-Webanwendung verfügbar zu haben)