sql >> Base de Datos >  >> RDS >> Oracle

Procedimiento almacenado PL/SQL fuera del cursor a VBA ADODB.RecordSet?

Creo que debería ser este:

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

Nota: Aunque their_package.get_product() toma tres parámetros, solo se deben vincular dos porque el proveedor vincula automáticamente los parámetros del cursor Ref.

Para obtener más información, consulte la documentación de Oracle:Proveedor de Oracle para OLE Guía del desarrollador de base de datos:"Uso de OraOLEDB con Visual Basic"