Oracle
 sql >> Base de données >  >> RDS >> Oracle

ASP classique appelant la procédure stockée Oracle avec le pilote OraOleadb

Selon cette page , type de paramètre adVariant (c'est-à-dire 12) n'est pas pris en charge par ADO.

Vous devez utiliser des constantes afin de rendre votre code plus lisible, par ex.

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)

Essayez peut-être celui-ci :

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

Les paramètres numériques ne nécessitent pas de valeur de taille.

Vous devriez également essayer d'utiliser le type de paramètre adDate au lieu de convertir les dates en valeurs de chaîne.

Vous devez supprimer les guillemets lorsque vous utilisez le paramètre bind, c'est-à-dire utiliser simplement theSubmittedDt = submitted_date au lieu de theSubmittedDt = "'" & submitted_date & "'" .