Oracle
 sql >> Database >  >> RDS >> Oracle

ASP classico che chiama la stored procedure Oracle con OraOleadb Driver

Secondo questa pagina , tipo di parametro adVariant (cioè 12) non è supportato da ADO.

Dovresti usare le costanti per rendere il tuo codice più leggibile, ad es.

Const adUseClient = 3
Const adOpenStatic = 3
Const adCmdText = 1
Const adCmdStoredProc = 4

Const adVarChar = 200 
Const adNumeric = 131 
Const adChar = 129
Const adBigInt = 20 
Const adInteger = 3

Const adParamInput = 1
Const adParamOutput = 2
Const adParamInputOutput = 3
Const adParamReturnValue = 4

cmd.Parameters.Append cmd.CreateParameter("theAccountId", adVarChar, adParamInput, , Request.Form ("aid"))
cmd.Parameters.Append cmd.CreateParameter("theAwardId", adNumeric, adParamInput, , award_id)
cmd.Parameters.Append cmd.CreateParameter("theDueDate", adVarChar, adParamInput, 100, theDueDt)
cmd.Parameters.Append cmd.CreateParameter("theSubmittedDate", adVarChar, adParamInput, 100, theSubmittedDt)
cmd.Parameters.Append cmd.CreateParameter("theReportDescription", adVarChar, adParamInput, 100, theReportDesc)
cmd.Parameters.Append cmd.CreateParameter("theFormId", adVarChar, adParamInput, 100, theFrmId)
cmd.Parameters.Append cmd.CreateParameter("theReturnCode", adNumeric, adParamOutput)

Forse prova questo:

cmd.CommandType = adCmdText
cmd.CommandText = "{CALL deadlines_summary.PR_SUMMARY_IN(?,?,?,?,?,?,?)}"

I parametri numerici non richiedono un valore di dimensione.

Dovresti anche provare a utilizzare il tipo di parametro adDate invece di convertire le date in valori stringa.

È necessario rimuovere le virgolette quando si utilizza il parametro bind, ovvero utilizzare semplicemente theSubmittedDt = submitted_date invece di theSubmittedDt = "'" & submitted_date & "'" .