Oracle
 sql >> Database >  >> RDS >> Oracle

Come chiamare una funzione Oracle con un cursore Ref come parametro Out da Visual Basic

Devi ottenere il lettore dal parametro, non dal comando.

Quindi invece di

Dim reader As OracleDataReader = rvCmd.ExecuteReader()

Hai bisogno di:

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