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

Como chamar uma função Oracle com um cursor de referência como parâmetro de saída do Visual Basic


Você precisa obter o leitor do parâmetro, não do comando.

Então, em vez de
Dim reader As OracleDataReader = rvCmd.ExecuteReader()

Você precisa:
rvCmd.CommandType = CommandType.StoredProcedure
rvCmd.CommandText = "getallprodpckg.get_allcust"

Dim qrySerial3 As New Oracle.DataAccess.Client.OracleParameter(
    None, OracleDbType.RefCursor, ParameterDirection.ReturnValue)

rvCmd.Parameters.Add(qrySerial3)

rvCmd.ExecuteNonQuery()

Dim cursor as OracleRefCursor = DirectCast(qrySerial3.Value, OracleRefCursor)

Dim reader As OracleDataReader = cursor.GetDataReader()