Мисля, че трябва да е този:
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
Забележка: Въпреки че their_package.get_product() приема три параметъра, само два трябва да бъдат обвързани, тъй като параметрите на референтния курсор се обвързват автоматично от доставчика.
За повече информация проверете документацията на Oracle:Oracle доставчик за OLE Ръководство за разработчици на DB – „Използване на OraOLEDB с Visual Basic“