Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ASP clássico chamando o procedimento armazenado Oracle com o driver OraOleadb


De acordo com esta página , tipo de parâmetro adVariant (ou seja, 12) não é suportado pelo ADO.

Você deve usar constantes para tornar seu código mais legível, por exemplo.
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)

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

Os parâmetros numéricos não requerem um valor de tamanho.

Você também deve tentar usar o tipo de parâmetro adDate em vez de converter as datas em valores de string.

Você deve remover as aspas quando usar o parâmetro bind, ou seja, use simplesmente theSubmittedDt = submitted_date em vez de theSubmittedDt = "'" & submitted_date & "'" .