Aggiornamento: - Apparentemente dopo un po' di ricerca (dato che non lavoro con Oracle) ADODB non supporta adVariant
(che è 12
) e dovresti usare adVarChar
(che è 200
) invece.
Vedere A:ASP classico che chiama la stored procedure Oracle con OraOleadb Driver
Lasciando il resto della risposta di seguito poiché probabilmente è ancora rilevante una volta risolto il problema.
La causa di quel particolare errore è solitamente una mancata corrispondenza del tipo di dati una volta che ADODB parla con il provider definito dalla connessione.
Sto solo guardando la definizione della procedura in Oracle rispetto al tuo ADODB.Command
oggetto posso vedere che il p_return
il parametro sembra essere errato. Ne parlo in una risposta precedente
a una domanda simile
.
Secondo Mappatura del tipo di dati
(un'ottima risorsa per la mappatura dei tipi di dati in ADO) adInteger
(che è 3
) mappa a Int
in Oracle non Number
. Invece, dovresti usare adNumeric
(che è 131
) che dovrebbe correggere quel particolare errore.
Prova a cambiare questa riga
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 3, 2)
a
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 131, 2)
Link utili
- A:Utilizzo di Stored Procedure in ASP classico .. esegui e ottieni risultati
- A:Errore ADODB.Parameters '800a0e7c' L'oggetto parametro è definito in modo non corretto. Sono state fornite informazioni incoerenti o incomplete
(consiglialo per imparare a usare
METADATA
inglobal.asa
avere le costanti con nome ADO sempre disponibili per un'applicazione Web ASP)