Q

Returning number of rows to a REF CURSOR

I was wondering if it is possible to get the number of rows returned to a REF CURSOR.

I believe Oracle is the only major database which uses the REF CURSOR type, so I will assume you are using Oracle. REF CURSORS are used in PL/SQL, Oracles procedural language, so I'll give you an example in a snippet of PL/SQL code.

Cursors in Oracle have attributes, such as %FOUND, %NOTFOUND, %ISOPEN, and %ROWCOUNT. When appended to the name of the cursor, they return useful information about its execution. %ROWCOUNT is the attribute that will give you the information you're looking for. Here is an example:

 declare type tWeakCursor is REF CURSOR; cMyCursor tWeakCursor; vTable_Name varchar2(30); begin open cMyCursor for 'select * from user_tables'; loop fetch cMyCursor into vTable_Name; exit when cMyCursor%notfound; dbms_output.put_line( to_char(cMyCursor%rowcount) || ') ' || vTable_Name ); end loop; close cMyCursor; end;

The %ROWCOUNT attribute returns the current row count of the cursor. After the cursor is opened, %ROWCOUNT is equal to zero. After every successful FETCH, ROWCOUNT is incremented by one.

 

For More Information

  • What do you think about this answer? E-mail the edtiors at editor@searchDatabase.com with your feedback.
  • The Best SQL Web Links: tips, tutorials, scripts, and more.
  • Have an SQL tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize. Submit your tip today!
  • Ask your technical SQL questions -- or help out your peers by answering them -- in our live discussion forums.
  • Ask the Experts yourself: Our SQL, database design, Oracle, SQL Server, DB2, metadata, object-oriented and data warehousing gurus are waiting to answer your toughest questions.


This was first published in February 2002

Dig deeper on Using Oracle PL-SQL

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchDataManagement

SearchBusinessAnalytics

SearchSAP

SearchSQLServer

TheServerSide

SearchDataCenter

SearchContentManagement

SearchFinancialApplications

Close