Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment appeler une fonction Oracle avec un curseur de référence comme paramètre de sortie à partir de Visual Basic

Vous devez obtenir le lecteur à partir du paramètre, pas à partir de la commande.

Donc au lieu de

Dim reader As OracleDataReader = rvCmd.ExecuteReader()

Vous avez besoin :

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()