blob: ff57cc60ecddeb4031d89d8e7077348a43e15f10 [file]
---
title: EXECUTE
---
Executes a prepared SQL statement.
## <a id="topic1__section2"></a>Synopsis
``` pre
EXECUTE <name> [ (<parameter> [, ...] ) ]
```
## <a id="topic1__section3"></a>Description
`EXECUTE` is used to execute a previously prepared statement. Since prepared statements only exist for the duration of a session, the prepared statement must have been created by a `PREPARE` statement executed earlier in the current session.
If the `PREPARE` statement that created the statement specified some parameters, a compatible set of parameters must be passed to the `EXECUTE` statement, or else an error is raised. Note that (unlike functions) prepared statements are not overloaded based on the type or number of their parameters; the name of a prepared statement must be unique within a database session.
For more information on the creation and usage of prepared statements, see `PREPARE`.
## <a id="topic1__section4"></a>Parameters
<dt>\<name\> </dt>
<dd>The name of the prepared statement to execute.</dd>
<dt>\<parameter\> </dt>
<dd>The actual value of a parameter to the prepared statement. This must be an expression yielding a value that is compatible with the data type of this parameter, as was determined when the prepared statement was created.</dd>
## <a id="topic1__section5"></a>Examples
Create a prepared statement for an `INSERT` statement, and then execute it:
``` pre
PREPARE fooplan (int, text, bool, numeric) AS INSERT INTO
foo VALUES($1, $2, $3, $4);
EXECUTE fooplan(1, 'Hunter Valley', 't', 200.00);
```
## <a id="topic1__section6"></a>Compatibility
The SQL standard includes an `EXECUTE` statement, but it is only for use in embedded SQL. This version of the `EXECUTE` statement also uses a somewhat different syntax.
## <a id="topic1__section7"></a>See Also
[DEALLOCATE](DEALLOCATE.html), [PREPARE](PREPARE.html)