<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/execute.sgml,v 1.16 2008/11/14 10:22:47 petere Exp $
PostgreSQL documentation
-->

<refentry id="SQL-EXECUTE">
 <refmeta>
  <refentrytitle id="sql-execute-title">EXECUTE</refentrytitle>
  <manvolnum>7</manvolnum>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>EXECUTE</refname>
  <refpurpose>execute a prepared statement</refpurpose>
 </refnamediv>

 <indexterm zone="sql-execute">
  <primary>EXECUTE</primary>
 </indexterm>

 <indexterm zone="sql-execute">
  <primary>prepared statements</primary>
  <secondary>executing</secondary>
 </indexterm>

 <refsynopsisdiv>
<synopsis>
EXECUTE <replaceable class="PARAMETER">name</replaceable> [ ( <replaceable class="PARAMETER">parameter</replaceable> [, ...] ) ]
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>EXECUTE</command> 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
   <command>PREPARE</command> statement executed earlier in the
   current session.
  </para>

  <para>
   If the <command>PREPARE</command> statement that created the statement
   specified some parameters, a compatible set of parameters must be
   passed to the <command>EXECUTE</command> 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.
  </para>

  <para>
   For more information on the creation and usage of prepared statements,
   see <xref linkend="sql-prepare" endterm="sql-prepare-title">.
  </para>
 </refsect1>

 <refsect1>
  <title>Parameters</title>

  <variablelist>
   <varlistentry>
    <term><replaceable class="PARAMETER">name</replaceable></term>
    <listitem>
     <para>
      The name of the prepared statement to execute.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="PARAMETER">parameter</replaceable></term>
    <listitem>
     <para>
      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.
     </para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>

 <refsect1>
  <title>Outputs</title>
   <para>
   The command tag returned by <command>EXECUTE</command>
   is that of the prepared statement, and not <literal>EXECUTE</>.
  </para>
 </refsect1>

 <refsect1>
  <title>Examples</>
  <para>
    Examples are given in the <xref linkend="sql-prepare-examples"
    endterm="sql-prepare-examples-title"> section of the <xref
    linkend="sql-prepare" endterm="sql-prepare-title"> documentation.
   </para>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   The SQL standard includes an <command>EXECUTE</command> statement,
   but it is only for use in embedded SQL.  This version of the
   <command>EXECUTE</command> statement also uses a somewhat different
   syntax.
  </para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-deallocate" endterm="sql-deallocate-title"></member>
   <member><xref linkend="sql-prepare" endterm="sql-prepare-title"></member>
  </simplelist>
 </refsect1>
</refentry>
