blob: 7770ceae30730b4bcfeb13dad013182bc07ae492 [file] [view]
---
title: CLOSE
---
# CLOSE
Closes a cursor.
## Synopsis
```sql
CLOSE { <cursor_name> | ALL }
```
## Description
`CLOSE` frees the resources associated with an open cursor. After the cursor is closed, no subsequent operations are allowed on it. A cursor should be closed when it is no longer needed.
Every non-holdable open cursor is implicitly closed when a transaction is terminated by `COMMIT` or `ROLLBACK`. A holdable cursor is implicitly closed if the transaction that created it is prematurely ended via `ROLLBACK`. If the creating transaction successfully commits, the holdable cursor remains open until an explicit `CLOSE` is run, or the client disconnects.
## Parameters
**`cursor_name`**
The name of an open cursor to close.
**`ALL`**
Close all open cursors.
## Notes
Apache Cloudberry does not have an explicit `OPEN` cursor statement. A cursor is considered open when it is declared. Use the [DECLARE](/docs/sql-stmts/declare.md) statement to declare (and open) a cursor.
You can see all available cursors by querying the `pg_cursors` system view.
If a cursor is closed after a savepoint which is later rolled back, the `CLOSE` is not rolled back; that is, the cursor remains closed.
## Examples
Close the cursor `portala`:
```sql
CLOSE portala;
```
## Compatibility
`CLOSE` is fully conforming with the SQL standard. `CLOSE ALL` is a Apache Cloudberry extension.
## See also
[DECLARE](/docs/sql-stmts/declare.md), [FETCH](/docs/sql-stmts/fetch.md), [MOVE](/docs/sql-stmts/move.md), [RETRIEVE](/docs/sql-stmts/retrieve.md)