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

Kald Oracle lagret procedure med VBA ved hjælp af en refcursor

Jeg fandt en løsning ved et uheld. Hvis jeg ikke definerer ref_cursor-parameteren, virker den.

cmd.CommandText = "testproc"
cmd.ActiveConnection = cn
cmd.CommandType = adCmdStoredProc
Set param1 = cmd.CreateParameter("articlenr", adInteger, adParamInput, , 47)
Set param2 = cmd.CreateParameter("storenr", adInteger, adParamInput, , 281)
Set param3 = cmd.CreateParameter("cweek", adVarChar, adParamInput, 10, "201705")

'Next line not needed
'Set param4 = cmd.CreateParameter("prc", adVariant, adParamOutput, , Null)

cmd.Parameters.Append param1
cmd.Parameters.Append param2
cmd.Parameters.Append param3

'Next line not needed
'cmd.Parameters.Append param4

Set rs = cmd.Execute

Dette virker, tilsyneladende er ref_cursor-specifikationen ikke nødvendig og sker som standard :)



  1. MySQL langsom forespørgsel med join, selvom EXPLAIN viser en god plan

  2. MySQL Inner Join Med LIMIT til venstre bord

  3. Udfør et stort SQL-script (med GO-kommandoer)

  4. Hurtigste måde at beregne hash for en hel tabel