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

Cómo llamar a una función de Oracle con un cursor de referencia como parámetro de salida de Visual Basic

Debe obtener el lector del parámetro, no del comando.

Así que en lugar de

Dim reader As OracleDataReader = rvCmd.ExecuteReader()

Necesitas:

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