Aktualizace: - Zřejmě po troše výzkumu (protože nepracuji s Oracle) ADODB nepodporuje adVariant
(což je 12
) a měli byste použít adVarChar
(což je 200
) místo toho.
Viz Odpověď:Klasické volání ASP uložené procedury Oracle s ovladačem OraOleadb
Zbytek odpovědi ponechte níže, protože po vyřešení tohoto problému bude pravděpodobně stále relevantní.
Příčinou je, že konkrétní chyba je obvykle neshoda typu dat, jakmile ADODB mluví s poskytovatelem definovaným připojením.
Stačí se podívat na definici procedury v Oracle ve srovnání s vaším ADODB.Command
objekt Vidím, že p_return
parametr se zdá být nesprávný. Mluvím o tom v předchozí odpovědi
na podobný dotaz
.
Podle Mapování datových typů
(skvělý zdroj pro mapování datových typů v ADO) adInteger
(což je 3
) mapuje na Int
v Oracle ne Number
. Místo toho byste měli použít adNumeric
(což je 131
) který by měl tuto konkrétní chybu opravit.
Zkuste změnit tento řádek
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 3, 2)
do
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 131, 2)
Užitečné odkazy
- Odpověď:Použití uložené procedury v klasickém ASP .. spustit a získat výsledky
- Odpověď:Chyba ADODB.Parameters '800a0e7c' Objekt parametru je nesprávně definován. Byly poskytnuty nekonzistentní nebo neúplné informace
(doporučujeme toto, chcete-li se naučit používat
METADATA
vglobal.asa
aby byly pojmenované konstanty ADO vždy dostupné pro webovou aplikaci ASP)