Udostępnij za pośrednictwem


Retrieving Data from Multiple REF CURSORs Using an OracleDataReader 

This Microsoft Visual Basic example executes a PL/SQL stored procedure that returns two REF CURSOR parameters, and reads the values using an OracleDataReader.

Private Sub Button1_Click( _
  ByVal sender As Object, ByVal e As System.EventArgs)  _
  Handles Button1.Click

    Dim connString As New String( _
      "Data Source=Oracle9i;User ID=scott;Password=tiger;")
    Dim conn As New OracleConnection(connString)
    Dim cmd As New OracleCommand()
    Dim rdr As OracleDataReader

    conn.Open()
    cmd.Connection = conn
    cmd.CommandText = "CURSPKG.OPEN_TWO_CURSORS"
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Parameters.Add(New OracleParameter( _
      "EMPCURSOR", OracleType.Cursor)).Direction = _
      ParameterDirection.Output
    cmd.Parameters.Add(New OracleParameter(_
      "DEPTCURSOR", OracleType.Cursor)).Direction = _
      ParameterDirection.Output


    rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
    While (rdr.Read())
        REM do something with the values from the EMP table 
    End While

    rdr.NextResult()
    While (rdr.Read())
        REM do something with the values from the DEPT table 
    End While
    rdr.Close()
End Sub 

See Also

Other Resources

Working with Oracle REF CURSORs