Opdatering: - Tilsyneladende efter lidt research (da jeg ikke arbejder med Oracle) ADODB understøtter ikke adVariant
(som er 12
) og du skal bruge adVarChar
(som er 200
) i stedet.
Se A:Classic ASP calling Oracle stored procedure with OraOleadb Driver
Efterlader resten af svaret nedenfor, da det sandsynligvis stadig er relevant, når dette problem er løst.
Årsagen er, at den særlige fejl normalt er en mismatch af datatype, når først ADODB taler med udbyderen defineret af forbindelsen.
Bare se på proceduredefinitionen i Oracle i sammenligning med din ADODB.Command
objekt Jeg kan se, at p_return
parameter ser ud til at være forkert. Jeg taler om dette i et tidligere svar
til et lignende spørgsmål
.
Ifølge Data Type Mapping
(en fantastisk ressource til datatypekortlægning i ADO) adInteger
(som er 3
) kort til Int
i Oracle ikke Number
. I stedet skal du bruge adNumeric
(som er 131
) som skulle rette den pågældende fejl.
Prøv at ændre denne linje
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 3, 2)
til
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 131, 2)
Nyttige links
- A:Brug af lagret procedure i klassisk ASP .. udfør og få resultater
- A:ADODB.Parameters error '800a0e7c' Parameterobjektet er forkert defineret. Der blev givet inkonsistente eller ufuldstændige oplysninger
(anbefal dette for at lære at bruge
METADATA
iglobal.asa
at have ADO-navngivne konstanter altid tilgængelige for en ASP-webapplikation)