doc-exports/docs/dws/dev/dws_06_0247.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 version
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>
2024-05-16 07:24:04 +00:00

45 lines
7.2 KiB
HTML

<a name="EN-US_TOPIC_0000001233430139"></a><a name="EN-US_TOPIC_0000001233430139"></a>
<h1 class="topictitle1">DO</h1>
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001233430139__sf5ffe556d64f4aaab1ce14d06d385287"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001233430139__a9d1a1802527b45a2b55b8271c9b0295c"><strong id="EN-US_TOPIC_0000001233430139__en-us_topic_0058966288_b842352706112829">DO</strong> executes an anonymous code block.</p>
<p id="EN-US_TOPIC_0000001233430139__a2b8f9488461b4c42b5f590255aa357db">A code block is a function body without parameters. Its return type is <strong id="EN-US_TOPIC_0000001233430139__b49015517389">void</strong>. It is analyzed and executed at the same time.</p>
</div>
<div class="section" id="EN-US_TOPIC_0000001233430139__sd6fbdfd99f22417ab66fe2edf1b40d6e"><h4 class="sectiontitle">Precautions</h4><ul id="EN-US_TOPIC_0000001233430139__u02d75ead05114e36b38637416ef396de"><li id="EN-US_TOPIC_0000001233430139__l5a3a70a1c5a14b2c9e7be83234dd2542">Before using a programming language, install it in the current database using <strong id="EN-US_TOPIC_0000001233430139__b842352706114511">CREATE LANGUAGE</strong>. If no language is specified, <strong id="EN-US_TOPIC_0000001233430139__b842352706114527">plpgsql</strong> is installed by default.</li><li id="EN-US_TOPIC_0000001233430139__l94efe709c71748958d69315bf5e4a4b9">To use an untrusted language, you must be a system administrator or have the USAGE permission for programming languages.</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001233430139__scc5eced3d26e4aa4b161dd82e8168dce"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233430139__sa43f33225ba34e7491f384d5a51c3a88"><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">DO</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">LANGUAGE</span><span class="w"> </span><span class="n">lang_name</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">code</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001233430139__s0a36bbadb1914d4c8339e2177c45f5dd"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001233430139__u81881753b4414547ad5753a21df52d4a"><li id="EN-US_TOPIC_0000001233430139__le65a90e9675645088cb713832334dd4e"><strong id="EN-US_TOPIC_0000001233430139__aaf65a931ae554e43b8401769b7a41997">lang_name</strong><p id="EN-US_TOPIC_0000001233430139__a4033355053764826bd44f2e62e48b0b9">Parses the programming language used by the code. If not specified, the default value <strong id="EN-US_TOPIC_0000001233430139__b842352706123415">plpgsql</strong> is used.</p>
</li><li id="EN-US_TOPIC_0000001233430139__l1b241fb8ae98462eab116c2a5a9713a6"><strong id="EN-US_TOPIC_0000001233430139__aa28b2b11f4704f3fb47d9b4ce5621493">code</strong><p id="EN-US_TOPIC_0000001233430139__a810306be767e4f4382c6a3edc5b56d80">Specifies executable programming language code. The language is specified as a string.</p>
</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001233430139__section591493019315"><h4 class="sectiontitle">Examples</h4><div class="p" id="EN-US_TOPIC_0000001233430139__p966873616369">Grant user <strong id="EN-US_TOPIC_0000001233430139__b214745085433246">webuser</strong> all the operation permissions on views in the <strong id="EN-US_TOPIC_0000001233430139__b92993737033246">tpcds</strong> schema:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233430139__screen9105131511017"><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>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span>
<span class="normal">7</span>
<span class="normal">8</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DO</span><span class="w"> </span><span class="err">$$</span><span class="k">DECLARE</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="n">record</span><span class="p">;</span>
<span class="k">BEGIN</span>
<span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">c</span><span class="p">.</span><span class="n">relname</span><span class="p">,</span><span class="n">n</span><span class="p">.</span><span class="n">nspname</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_class</span><span class="w"> </span><span class="k">c</span><span class="p">,</span><span class="n">pg_namespace</span><span class="w"> </span><span class="n">n</span><span class="w"> </span>
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">c</span><span class="p">.</span><span class="n">relnamespace</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="p">.</span><span class="n">oid</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">n</span><span class="p">.</span><span class="n">nspname</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'tpcds'</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">relkind</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="s1">'r'</span><span class="p">,</span><span class="s1">'v'</span><span class="p">)</span>
<span class="w"> </span><span class="n">LOOP</span>
<span class="w"> </span><span class="k">EXECUTE</span><span class="w"> </span><span class="s1">'GRANT ALL ON '</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">quote_ident</span><span class="p">(</span><span class="n">r</span><span class="p">.</span><span class="n">table_schema</span><span class="p">)</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="s1">'.'</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">quote_ident</span><span class="p">(</span><span class="n">r</span><span class="p">.</span><span class="k">table_name</span><span class="p">)</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="s1">' TO webuser'</span><span class="p">;</span>
<span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="n">LOOP</span><span class="p">;</span>
<span class="k">END</span><span class="err">$$</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
</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>