---
name: "CLOSE"
section: "7"
platform: "linux"
package: "postgresql"
version: "18.6-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/CLOSE"
---

# CLOSE(7)

close a cursor

## NAME

CLOSE - close a cursor

## SYNOPSIS

```
CLOSE { 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 aborts via **ROLLBACK**. If the creating transaction successfully commits, the holdable cursor remains open until an explicit **CLOSE** is executed, or the client disconnects.

## PARAMETERS

*name*

The name of an open cursor to close.

ALL

Close all open cursors.

## NOTES

PostgreSQL does not have an explicit **OPEN** cursor statement; a cursor is considered open when it is declared. Use the **DECLARE** statement to declare 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 liahona:

```
CLOSE liahona;
```

## COMPATIBILITY

**CLOSE** is fully conforming with the SQL standard. **CLOSE ALL** is a PostgreSQL extension.

## SEE ALSO

[**DECLARE**(7)](/DECLARE/7.md), [**FETCH**(7)](/FETCH/7.md), [**MOVE**(7)](/MOVE/7.md)
