Bijwerken: - Blijkbaar na wat onderzoek (aangezien ik niet met Oracle werk) ADODB biedt geen ondersteuning voor adVariant
(dat is 12
) en u moet adVarChar
. gebruiken (dat is 200
) in plaats daarvan.
Zie A:Klassieke ASP die de Oracle-opgeslagen procedure aanroept met OraOleadb Driver
Laat de rest van het antwoord hieronder staan, omdat het waarschijnlijk nog steeds relevant is zodra dit probleem is opgelost.
De oorzaak van die specifieke fout is meestal een mismatch van het gegevenstype zodra de ADODB praat met de provider die door de verbinding is gedefinieerd.
Gewoon kijken naar de proceduredefinitie in Oracle in vergelijking met uw ADODB.Command
object Ik kan zien dat de p_return
parameter lijkt onjuist te zijn. Ik praat hierover in een vorig antwoord
op een vergelijkbare vraag
.
Volgens Data Type Mapping
(een geweldige bron voor het in kaart brengen van gegevenstypes in ADO) adInteger
(dat is 3
) verwijst naar Int
in Oracle niet Number
. Gebruik in plaats daarvan adNumeric
(dat is 131
) die die specifieke fout zou moeten oplossen.
Probeer deze regel te wijzigen
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 3, 2)
naar
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 131, 2)
Nuttige links
- A:Opgeslagen procedure gebruiken in klassieke ASP .. uitvoeren en resultaten krijgen
- A:ADODB.Parameters-fout '800a0e7c' Parameterobject is onjuist gedefinieerd. Er is inconsistente of onvolledige informatie verstrekt
(raad dit aan om te leren hoe
METADATA
te gebruiken inglobal.asa
om ADO Named Constants altijd beschikbaar te hebben voor een ASP-webtoepassing)