Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Procedimento armazenado PL/SQL fora do cursor para VBA ADODB.RecordSet?


Acho que deveria ser esse:
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

Observação: Embora their_package.get_product() receba três parâmetros, apenas dois precisam ser vinculados porque os parâmetros do cursor Ref são automaticamente vinculados pelo provedor.

Para obter mais informações, consulte a documentação da Oracle:Oracle Provider for OLE Guia do desenvolvedor de banco de dados - "Usando OraOLEDB com Visual Basic"