sql >> Database >  >> RDS >> Oracle

Klassieke ASP die de Oracle-opgeslagen procedure aanroept met OraOleadb Driver

Volgens deze pagina , parametertype adVariant (d.w.z. 12) wordt niet ondersteund door ADO.

U moet constanten gebruiken om uw code leesbaarder te maken, b.v.

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)

Probeer deze eens:

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

Voor numerieke parameters is geen groottewaarde vereist.

Probeer ook het parametertype adDate . te gebruiken in plaats van de datums om te zetten in tekenreekswaarden.

U moet de aanhalingstekens verwijderen wanneer u de bind-parameter gebruikt, d.w.z. gebruik eenvoudig theSubmittedDt = submitted_date in plaats van theSubmittedDt = "'" & submitted_date & "'" .



  1. Meerdere rijen tellen in MySQL in één query

  2. alleen de eerste rij in een mysql-query pakken

  3. PDO IN() Array-instructie EN een tijdelijke aanduiding

  4. Hoe de spool-opdracht te gebruiken in sql developer oracle