Files
doc-exports/docs/dws/tool/dws_16_0076.html
luhuayi a5e3903f6b DWS TG 910.211 version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: luhuayi <luhuayi@huawei.com>
Co-committed-by: luhuayi <luhuayi@huawei.com>
2025-04-23 13:53:01 +00:00

318 lines
38 KiB
HTML

<a name="EN-US_TOPIC_0000001860198893"></a><a name="EN-US_TOPIC_0000001860198893"></a>
<h1 class="topictitle1">Migrating Views</h1>
<div id="body8662426"><p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p20180212154319"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b31202418832229">CREATE VIEW</strong> (<a href="dws_16_0054.html#EN-US_TOPIC_0000001860198793">short key</a> CV) is used together with <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b45214466432229">SELECT</strong> to create a view.</p>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p18218165113519">The keyword <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b1341722483512">VIEW</strong> is supported by both Teradata and GaussDB(DWS), but the <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b941752416351">SELECT</strong> statements are enclosed in double quotation marks during the migration. For details, see the following figures.</p>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p481055981717">Use the <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b131170795132229"><a href="dws_16_0014.html#EN-US_TOPIC_0000001813438796__en-us_topic_0000001432527901_li166012191211">tdMigrateVIEWCHECKOPTIO....</a></strong><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b14505282732229"> </strong>configuration parameter to configure migration of views containing the WITH CHECK OPTION keyword. If <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b65480870232229">tdmigrateVIEWCHECKOPTION</strong> is set to <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b180970070432229">false</strong>, the tool will skip migration of the query and will log a message.</p>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p12137174310167">If the CREATE VIEW includes the LOCK keyword, then the VIEW query will be migrated based on the value of <a href="dws_16_0014.html#EN-US_TOPIC_0000001813438796__en-us_topic_0000001432527901_li18084318118">tdMigrateLOCKoption</a>.</p>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p6221363392"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b194651321125615">Input - CREATE VIEW</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen26538187479"><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">VIEW</span><span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">MY_PARAM</span><span class="w"> </span>
<span class="k">AS</span><span class="w"> </span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">RUNDATE</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">DATE_TBL</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">dummy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p4655201817478"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b201086561993935">Output:</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen20258188124719"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">MY_PARAM</span><span class="w"> </span>
<span class="k">AS</span><span class="w"> </span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">RUNDATE</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">DATE_TBL</span>
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">dummy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p9770112705912"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b174879618932229">Input: CREATE VIEW WITH FORCE KEYWORD</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen4770192711590"><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>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span>
<span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">FORCE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">IS2010_APP_INFO</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="n">APP_ID</span><span class="p">,</span><span class="w"> </span><span class="n">APP_SHORTNAME</span><span class="p">,</span><span class="w"> </span><span class="n">APP_CHNAME</span><span class="p">,</span><span class="w"> </span>
<span class="w"> </span><span class="n">APP_ENNAME</span>
<span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span>
<span class="k">select</span><span class="w"> </span>
<span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">app_id</span><span class="p">,</span><span class="w"> </span>
<span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">app_shortname</span><span class="p">,</span><span class="w"> </span>
<span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">app_chname</span><span class="p">,</span><span class="w"> </span>
<span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">app_enname</span><span class="w"> </span>
<span class="k">from</span><span class="w"> </span>
<span class="w"> </span><span class="n">newdrms</span><span class="p">.</span><span class="n">seas_app_info</span><span class="w"> </span><span class="n">t</span><span class="w"> </span>
<span class="k">WHERE</span><span class="w"> </span>
<span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">app_status</span><span class="w"> </span><span class="o">&lt;&gt;</span><span class="w"> </span><span class="s1">'2'</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p9770172714597"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b135586601493935">Output:</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen1877010274591"><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>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span>
<span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span>
<span class="cm">/*FORCE*/</span>
<span class="k">VIEW</span><span class="w"> </span><span class="n">IS2010_APP_INFO</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="n">APP_ID</span><span class="p">,</span>
<span class="w"> </span><span class="n">APP_SHORTNAME</span><span class="p">,</span>
<span class="w"> </span><span class="n">APP_CHNAME</span><span class="p">,</span>
<span class="w"> </span><span class="n">APP_ENNAME</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span>
<span class="k">SELECT</span>
<span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">app_id</span><span class="p">,</span>
<span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">app_shortname</span><span class="p">,</span>
<span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">app_chname</span><span class="p">,</span>
<span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">app_enname</span>
<span class="k">FROM</span>
<span class="w"> </span><span class="n">newdrms</span><span class="p">.</span><span class="n">seas_app_info</span><span class="w"> </span><span class="n">t</span>
<span class="k">WHERE</span>
<span class="n">t</span><span class="p">.</span><span class="n">app_status</span><span class="w"> </span><span class="o">&lt;&gt;</span><span class="w"> </span><span class="s1">'2'</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<div class="section" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_section920213323511"><h4 class="sectiontitle">REPLACE VIEW</h4><p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p11983171515412">In Teradata, the <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b179495318732229">REPLACE VIEW</strong> statement is used to create a view or rebuild the existing view. DSC converts the <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b1367413911354">REPLACE VIEW</strong> statement to the <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b767423973515">CREATE OR REPLACE VIEW</strong> statement that is compatible with GaussDB(DWS).</p>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p623217328511"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b9403105713525">Input - REPLACE VIEW</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen132329321519"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">REPLACE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">MY_PARAM</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span>
<span class="w"> </span><span class="n">RUNDATE</span>
<span class="w"> </span><span class="k">FROM</span>
<span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">DATE_TBL</span>
<span class="w"> </span><span class="k">WHERE</span>
<span class="w"> </span><span class="n">dummy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p1023218327518"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b48679429793935">Output:</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen82321032125111"><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>
<span class="normal"> 9</span>
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span>
<span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">MY_PARAM</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="k">SELECT</span>
<span class="w"> </span><span class="n">RUNDATE</span>
<span class="w"> </span><span class="k">FROM</span>
<span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">DATE_TBL</span>
<span class="w"> </span><span class="k">WHERE</span>
<span class="w"> </span><span class="n">dummy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="p">)</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p4232193235115"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b3608478537">Input - REPLACE RECURSIVE VIEW</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen192321032155113"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">Replace</span><span class="w"> </span><span class="k">RECURSIVE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">reachable_from</span><span class="w"> </span><span class="p">(</span>
<span class="n">emp_id</span><span class="p">,</span><span class="n">emp_name</span><span class="p">,</span><span class="n">DEPTH</span><span class="p">)</span><span class="w"> </span>
<span class="k">AS</span><span class="w"> </span><span class="p">(</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">emp_id</span><span class="p">,</span><span class="n">root</span><span class="p">.</span><span class="n">emp_name</span><span class="p">,</span><span class="mi">0</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DEPTH</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">emp</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">root</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">mgr_id</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NULL</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p1123218327516"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b163294136393935">Output:</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen142341532175118"><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">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">reachable_from</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span>
<span class="k">WITH</span><span class="w"> </span><span class="k">RECURSIVE</span><span class="w"> </span><span class="n">reachable_from</span><span class="w"> </span><span class="p">(</span>
<span class="n">emp_id</span><span class="p">,</span><span class="n">emp_name</span><span class="p">,</span><span class="n">DEPTH</span><span class="p">)</span><span class="w"> </span>
<span class="k">AS</span><span class="w"> </span><span class="p">(</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">emp_id</span><span class="p">,</span><span class="n">root</span><span class="p">.</span><span class="n">emp_name</span><span class="p">,</span><span class="mi">0</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DEPTH</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">emp</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">root</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">mgr_id</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">)</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reachable_from</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_section15484163014414"><h4 class="sectiontitle">REPLACE FUNCTION</h4><p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p1857793214118"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b53640091594010">Input:</strong></p>
<pre class="screen" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen18583125684116">REPLACE FUNCTION up_load1.RPT_016_BUS_DATE()
RETURNS DATE
LANGUAGE SQL
CONTAINS SQL
DETERMINISTIC
SQL SECURITY DEFINER
COLLATION INVOKER
INLINE TYPE 1
RETURN DATE'2017-08-22';</pre>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p13215144514414"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b48658208593935">Output:</strong></p>
<pre class="screen" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen4132130154217">CREATE OR REPLACE FUNCTION up_load1.RPT_016_BUS_DATE()
RETURNS DATE
LANGUAGE SQL
IMMUTABLE
SECURITY DEFINER
AS
$$
SELECT CAST('2017-08-20' AS DATE)
$$
;</pre>
</div>
<div class="section" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_section626052234019"><h4 class="sectiontitle">CHECK OPTION</h4><p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p7672172419251">Use the <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b46349536132229"><a href="dws_16_0014.html#EN-US_TOPIC_0000001813438796__en-us_topic_0000001432527901_li166012191211">tdMigrateVIEWCHECKOPTIO....</a></strong> configuration parameter to configure migration of views containing the WITH CHECK OPTION keyword.</p>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p1494773912401">If a view with <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b84742815232229">CHECK OPTION</strong> is present in the source, then the <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b13281669432229">CHECK OPTION</strong> is commented from the target database.</p>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p67491859133316"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b195355659932229">Input - VIEW with CHECK OPTION</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen1374995917337"><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></pre></div></td><td class="code"><div><pre><span></span><span class="n">CV</span><span class="w"> </span><span class="n">mgr15</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">SEL</span><span class="w"> </span><span class="o">*</span>
<span class="k">FROM</span>
<span class="w"> </span><span class="n">employee</span>
<span class="k">WHERE</span>
<span class="w"> </span><span class="n">manager_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">15</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="k">CHECK</span><span class="w"> </span><span class="k">OPTION</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p11750165917339"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b7974217132229">Output</strong> <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b125925355332229">(tdMigrateVIEWCHECKOPTION=True</strong>)</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen12750135993314"><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>
<span class="normal"> 9</span>
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span>
<span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">mgr15</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="k">SELECT</span>
<span class="w"> </span><span class="o">*</span>
<span class="w"> </span><span class="k">FROM</span>
<span class="w"> </span><span class="n">employee</span>
<span class="w"> </span><span class="k">WHERE</span>
<span class="w"> </span><span class="n">manager_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">15</span><span class="w"> </span><span class="cm">/*WITH CHECK OPTION */</span>
<span class="w"> </span><span class="p">)</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p1275517016271"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b139237701832229">Output</strong> <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b175350731232229">(tdMigrateVIEWCHECKOPTION=False</strong>)</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen13701125610447"><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></pre></div></td><td class="code"><div><pre><span></span><span class="n">CV</span><span class="w"> </span><span class="n">mgr15</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">SEL</span><span class="w"> </span><span class="o">*</span>
<span class="k">FROM</span>
<span class="w"> </span><span class="n">employee</span>
<span class="k">WHERE</span>
<span class="w"> </span><span class="n">manager_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">15</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="k">CHECK</span><span class="w"> </span><span class="k">OPTION</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_section101871839202310"><h4 class="sectiontitle">VIEW WITH RECURSIVE</h4><p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p16654154920231">GaussDB(DWS) does not support the Teradata keyword <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b15186643123917">RECURSIVE VIEW</strong>. Therefore the keyword is replaced with <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b26272861132229">VIEW WITH RECURSIVE</strong> keyword as shown in the following figures.</p>
<div class="fignone" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_fig215416865014"><span class="figcap"><b>Figure 1 </b>Input view-CREATE RECURSIVE VIEW</span><br><span><img id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_image315416875013" src="figure/en-us_image_0000001773531536.png" height="246.38250000000002" width="497.75250000000005" title="Click to enlarge" class="imgResize"></span></div>
<div class="fignone" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_fig1815415845019"><span class="figcap"><b>Figure 2 </b>Output view</span><br><span><img id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_image22732357" src="figure/en-us_image_0000001820491241.png" height="242.3925" width="495.75750000000005" title="Click to enlarge" class="imgResize"></span></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p17282192512411"></p>
<div class="section" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_section11504125643219"><h4 class="sectiontitle">VIEW WITH ACCESS LOCK</h4><p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p13188133771619">Use the <a href="dws_16_0014.html#EN-US_TOPIC_0000001813438796__en-us_topic_0000001432527901_li18084318118">tdMigrateLOCKOption</a> configuration parameter to configure migration of query containing the LOCK keyword. If <strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b136230504532229">tdMigrateLOCKOption</strong> is set to<strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b193627029832229"> false</strong>, the tool will skip migration of the query and will log a message.</p>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p1538155618327"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b136273450632229">Input - VIEW</strong><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b214171942932229"> with ACCESS LOCK</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen753995619325"><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">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">DP_SVMEDW</span><span class="p">.</span><span class="n">S_LCR_909_001_LCRLOAN</span><span class="w"> </span>
<span class="w"> </span><span class="k">AS</span><span class="w"> </span>
<span class="w"> </span><span class="k">LOCK</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">S_LCR_909_001_LCRLOAN</span><span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="k">ACCESS</span><span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="k">ACCESS</span><span class="w"> </span>
<span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">RUN_ID</span><span class="p">,</span><span class="w"> </span><span class="n">PRODUCT_ID</span><span class="p">,</span><span class="w"> </span><span class="n">CURRENCY</span>
<span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">CASHFLOW</span><span class="p">,</span><span class="w"> </span><span class="n">ENTITY</span><span class="p">,</span><span class="w"> </span><span class="n">LCR</span>
<span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">TIME_BUCKET</span><span class="p">,</span><span class="w"> </span><span class="n">MT</span><span class="p">,</span><span class="w"> </span><span class="n">Ctl_Id</span>
<span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">File_Id</span><span class="p">,</span><span class="w"> </span><span class="n">Business_Date</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">S_LCR_909_001_LCRLOAN</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p19546185616325"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b104895888893935">Output:</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen199221741103210"><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">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">DP_SVMEDW</span><span class="p">.</span><span class="n">S_LCR_909_001_LCRLOAN</span><span class="w"> </span>
<span class="w"> </span><span class="k">AS</span><span class="w"> </span>
<span class="cm">/* LOCK TABLE DP_STEDW.S_LCR_909_001_LCRLOAN FOR ACCESS */</span>
<span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">RUN_ID</span><span class="p">,</span><span class="w"> </span><span class="n">PRODUCT_ID</span><span class="p">,</span><span class="w"> </span><span class="n">CURRENCY</span>
<span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">CASHFLOW</span><span class="p">,</span><span class="w"> </span><span class="n">ENTITY</span><span class="p">,</span><span class="w"> </span><span class="n">LCR</span>
<span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">TIME_BUCKET</span><span class="p">,</span><span class="w"> </span><span class="n">MT</span><span class="p">,</span><span class="w"> </span><span class="n">Ctl_Id</span>
<span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">File_Id</span><span class="p">,</span><span class="w"> </span><span class="n">Business_Date</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">DP_STEDW</span><span class="p">.</span><span class="n">S_LCR_909_001_LCRLOAN</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p10734185414117"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b18734125420114">dbc.columnsV</strong></p>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p97551556143912"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b138134647594010">Input:</strong></p>
<pre class="screen" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen328874165211">SELECT A.ColumnName
AS V_COLS ,A.columnname || ' ' ||CASE WHEN columnType in ('CF','CV') THEN CASE WHEN columnType='CV' THEN 'VAR' ELSE '' END||'CHAR('||TRIM(columnlength (INT))|| ') CHARACTER SET LATIN'|| CASE WHEN UpperCaseFlag='N' THEN ' NOT' ELSE ''
END || ' CASESPECIFIC'
WHEN columnType='DA' THEN 'DATE'
WHEN columnType='TS' THEN 'TIMESTAMP(' || TRIM(DecimalFractionalDigits)||')' WHEN columnType='AT' THEN 'TIME('|| TRIM(DecimalFractionalDigits)||')' WHEN columnType='I' THEN 'INTEGER'
WHEN columnType='I1' THEN 'BYTEINT'
WHEN columnType='I2' THEN 'SMALLINT'
WHEN columnType='I8' THEN 'BIGINT'
WHEN columnType='D' THEN 'DECIMAL('||TRIM(DecimalTotalDigits)||','||TRIM(DecimalFractionalDigits)||')' ELSE 'Unknown'
END||CASE WHEN Nullable='Y'
THEN '' ELSE ' NOT NULL' END||'0A'XC
AS V_ColT
,D.ColumnName
AS V_PICol -- Obtain the primary index of the target table.
FROM dbc.columnsV A LEFT JOIN dbc.IndicesV B ON A.columnName = B.columnName AND B.IndexType IN ('Q','P') AND B.DatabaseName = '${V_TDDLDB}' AND B.tablename='${TARGET_TABLE}' WHERE A.databasename='${V_TDDLDB}' AND A.tablename = '${TARGET_TABLE}' AND A.columnname NOT IN ( 'ETL_JOB_NAME' ,'ETL_TX_DATE' ,
'ETL_PROC_DATE'
)ORDER BY A.columnid;</pre>
<p id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_p14689188164012"><strong id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_b88447654393935">Output:</strong></p>
<pre class="screen" id="EN-US_TOPIC_0000001860198893__en-us_topic_0000001434790465_screen53191287546">D DECLARE lv_mig_V_COLS TEXT; lv_mig_V_ColT TEXT; lv_mig_V_PICol TEXT; BEGIN SELECT STRING_AGG(A.ColumnName, ',') , STRING_AGG(A.columnname || ' ' ||CASE WHEN columnType in ('CF','CV') THEN CASE WHEN columnType='CV' THEN 'VAR' ELSE '' END||'CHAR('||TRIM(mig_td_ext.mig_fn_castasint(columnlength))|| ') /*CHARACTER SET LATIN*/'|| CASE WHEN UpperCaseFlag='N' THEN ' NOT' ELSE '' END || ' /*CASESPECIFIC*/' WHEN columnType='DA' THEN 'DATE' WHEN columnType='TS' THEN 'TIMESTAMP(' || TRIM(DecimalFractionalDigits)||')' WHEN columnType='AT' THEN 'TIME('|| TRIM(DecimalFractionalDigits)||')' WHEN columnType='I' THEN 'INTEGER' WHEN columnType='I1' THEN 'BYTEINT' WHEN columnType='I2' THEN 'SMALLINT' WHEN columnType='I8' THEN 'BIGINT' WHEN columnType='D' THEN 'DECIMAL('||TRIM(DecimalTotalDigits)||','||TRIM(DecimalFractionalDigits)||')' ELSE 'Unknown' END||CASE WHEN Nullable='Y' THEN '' ELSE ' NOT NULL' END||E'\x0A', ',') , STRING_AGG(B.ColumnName, ',') INTO lv_mig_V_COLS, lv_mig_V_ColT, lv_mig_V_PICol FROM mig_td_ext.vw_td_dbc_columnsV A LEFT JOIN mig_td_ext.vw_td_dbc_IndicesV B ON A.columnName = B.columnName AND B.IndexType IN ('Q','P') AND B.DatabaseName = 'public' AND B.tablename='emp2' WHERE A.databasename='public' AND A.tablename = 'emp2'; -- ORDER BY A.columnid; END; / </pre>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_16_0036.html">Teradata Syntax Migration</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>