Skip to content

ABAP Keyword Documentation →  ABAP − Reference →  Processing External Data →  ABAP Database Access →  ABAP SQL →  ABAP SQL - Reads →  OPEN CURSOR 

CLOSE CURSOR

Quick Reference

Other versions: 7.31 | 7.40 | 7.54

Syntax


CLOSE CURSOR @dbcur. 

Effect

This ABAP SQL statement CLOSE CURSOR closes the database cursorand initializes the cursor variable dbcur, with which the database cursor is linked. The cursor variable dbcur is a host variable that must be declared using the special predefined data type cursor and that was opened using the statement OPEN CURSOR or was assigned an open cursor.


Notes

  • Since only a limited number of 17 database cursors can be open simultaneously in ABAP SQL, all database cursors no longer required should be closed.
  • Initializing a cursor variable using the CLEAR statement is not enough to close a database cursor. If the value of the cursor variable in the program is known, the database cursor can be further processed using FETCH.
  • Once a database cursor has been closed, it can no longer be accessed. Other cursor variables that were associated with the database cursor are not initialized, but become invalid and accessing them would raise a handleable exception.
  • The name of the host variable dbcur should be prefixed with the escape character @. If the associated statement OPEN CURSOR is checked in accordance with the strict mode from Release 7.50, the escape character @ must be specified.

Example

Closes a previously opened and used database cursor.

DATA wa TYPE scarr. 

OPEN CURSOR WITH HOLD @DATA(dbcur) FOR 
  SELECT * 
         FROM scarr. 

WHILE sy-subrc = 0. 
  FETCH NEXT CURSOR @dbcur INTO @wa. 
ENDWHILE. 

CLOSE CURSOR @dbcur.