forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
38 lines
6.7 KiB
HTML
38 lines
6.7 KiB
HTML
<a name="EN-US_TOPIC_0000001233708659"></a><a name="EN-US_TOPIC_0000001233708659"></a>
|
|
|
|
<h1 class="topictitle1">PREPARE</h1>
|
|
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001233708659__s64a5f7b7793247f6b640cfe61162a0ae"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001233708659__ac4967ac6767c469d9196657c5c9f993d"><strong id="EN-US_TOPIC_0000001233708659__b842352706172019">PREPARE</strong> creates a prepared statement.</p>
|
|
<p id="EN-US_TOPIC_0000001233708659__a32b2193a52ed44d785b7f3e8d52709f4">A prepared statement is a performance optimizing object on the server. When the <strong id="EN-US_TOPIC_0000001233708659__b842352706152614">PREPARE</strong> statement is executed, the specified query is parsed, analyzed, and rewritten. When the <strong id="EN-US_TOPIC_0000001233708659__b842352706152651">EXECUTE</strong> is executed, the prepared statement is planned and executed. This avoids repetitive parsing and analysis. After the PREPARE statement is created, it exists throughout the database session. Once it is created (even if in a transaction block), it will not be deleted when a transaction is rolled back. It can only be deleted by explicitly invoking <a href="dws_06_0246.html">DEALLOCATE</a> or automatically deleted when the session ends.</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233708659__s523f7491d24741eb857e3416de2ba030"><h4 class="sectiontitle">Precautions</h4><p id="EN-US_TOPIC_0000001233708659__a33f36c7ccf3b4cc8b86dffba03aaecf3">None</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233708659__s73ae27cbe2e74204913f66e3e301ea49"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233708659__s9579bd26c2264f759425ad3da1a7966a"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">PREPARE</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">data_type</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">statement</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233708659__s3375ad463df044eea5fe55f2a6081109"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001233708659__uafab1a37923744d3bfa76fe986b1beac"><li id="EN-US_TOPIC_0000001233708659__l5bb5ca00055141649a531e9707279e79"><strong id="EN-US_TOPIC_0000001233708659__a7000a2f28cec4dd5baebcd174c749168">name</strong><p id="EN-US_TOPIC_0000001233708659__ad1c034c69a734fbe8e1e23cef7a38084">Specifies the name of a prepared statement. It must be unique in the current session.</p>
|
|
</li><li id="EN-US_TOPIC_0000001233708659__lc4bbb0552a4d4dfeb04017cffc8b184c"><strong id="EN-US_TOPIC_0000001233708659__a97edd0ffcbc8417293feb53bd63f24eb">data_type</strong><p id="EN-US_TOPIC_0000001233708659__a2de8bd81f23d49f0aff8dd9ee32bc97d">Specifies the type of a parameter.</p>
|
|
</li><li id="EN-US_TOPIC_0000001233708659__l0e9201f1d9cb43db9823f646eb222e9e"><strong id="EN-US_TOPIC_0000001233708659__a77aff9766d074e3899abbf5f210331d5">statement</strong><p id="EN-US_TOPIC_0000001233708659__a38badac004e9439b8676dba190da78d8">Specifies a SELECT, INSERT, UPDATE, DELETE, or VALUES statement.</p>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233708659__section13959226174"><h4 class="sectiontitle">Examples</h4><div class="p" id="EN-US_TOPIC_0000001233708659__en-us_topic_0000001233628585_p1082416237332">Create and run a prepared statement for the <strong id="EN-US_TOPIC_0000001233708659__en-us_topic_0000001233628585_b7126971593357">INSERT</strong> statement:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233708659__en-us_topic_0000001233628585_screen1371814328169"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">reason_t1</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">b</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span><span class="k">c</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">20</span><span class="p">));</span>
|
|
<span class="k">PREPARE</span><span class="w"> </span><span class="n">insert_reason</span><span class="p">(</span><span class="nb">integer</span><span class="p">,</span><span class="nb">character</span><span class="p">(</span><span class="mi">16</span><span class="p">),</span><span class="nb">character</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">reason_t1</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="err">$</span><span class="mi">1</span><span class="p">,</span><span class="err">$</span><span class="mi">2</span><span class="p">,</span><span class="err">$</span><span class="mi">3</span><span class="p">);</span>
|
|
<span class="k">EXECUTE</span><span class="w"> </span><span class="n">insert_reason</span><span class="p">(</span><span class="mi">52</span><span class="p">,</span><span class="w"> </span><span class="s1">'AAAAAAAADDAAAAAA'</span><span class="p">,</span><span class="w"> </span><span class="s1">'reason 52'</span><span class="p">);</span><span class="w"> </span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233708659__section1690451517271"><h4 class="sectiontitle">Helpful Links</h4><p id="EN-US_TOPIC_0000001233708659__p610344813274"><a href="dws_06_0246.html">DEALLOCATE</a></p>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0242.html">DCL Syntax</a></div>
|
|
</div>
|
|
</div>
|
|
|