Saya pikir seharusnya yang ini:
With cmd
.Properties("PLSQLRSet") = TRUE
.ActiveConnection = conn
.CommandType = adCmdText
.CommandText = "{call their_package.get_product(?,?)}"
.NamedParameters = True
.Parameters.Append cmd.CreateParameter("rptid", adNumeric, adParamInput, 0, 98)
.Parameters.Append cmd.CreateParameter("scenario", adVarChar, adParamInput, 4, "decline001")
End With
...
Set rs = cmd.Execute
cmd.Properties("PLSQLRSet") = FALSE
Catatan: Meskipun them_package.get_product() membutuhkan tiga parameter, hanya dua yang perlu diikat karena parameter kursor Ref secara otomatis terikat oleh penyedia.
Untuk informasi lebih lanjut, periksa dokumentasi Oracle:Penyedia Oracle untuk OLE Panduan Pengembang DB - "Menggunakan OraOLEDB dengan Visual Basic"