doc-exports/docs/dws/tool/dws_16_0039.html
Lu, Huayi 27019c2991 DWS TOOL 830.201 version
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com>
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:35:25 +00:00

83 lines
16 KiB
HTML

<a name="EN-US_TOPIC_0000001819336093"></a><a name="EN-US_TOPIC_0000001819336093"></a>
<h1 class="topictitle1">Constraints and Limitations</h1>
<div id="body8662426"><p id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p25281933">The restrictions on using DSC to migrate data from TD are as follows:</p>
<ul id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_ul47792931172724"><li id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_li36227361">DSC is used only for syntax migration and not for data migration.</li></ul>
<ul id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_ul1507981173239"><li id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_li13571829173239">If the <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b125256199632156">SELECT</strong> clause of a subquery contains an aggregate function when the <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b69831521232156">IN</strong> or <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b165518673332156">NOT IN</strong> operator is converted to <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b103823048532156">EXISTS</strong> or <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b87076321732156">NOT EXISTS</strong>, errors may occur during script migration.</li></ul>
<div class="section" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_section14010219134"><h4 class="sectiontitle">Teradata</h4><ul id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_ul2048912251488"><li id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_li194898254813">If a <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b1860914114718">case</strong> statement containing <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b20609104113711">FORMAT</strong> is not enclosed in parentheses, this statement will not be processed.<div class="p" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p4489182517815">Examples are as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_screen18489152516820"><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">case</span><span class="w"> </span><span class="k">when</span><span class="w"> </span><span class="n">column1</span><span class="o">=</span><span class="s1">'0'</span><span class="w"> </span><span class="k">then</span><span class="w"> </span><span class="n">column1</span><span class="o">=</span><span class="s1">'value'</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="p">(</span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'YYYYMMDD'</span><span class="p">)</span><span class="k">as</span><span class="w"> </span><span class="n">alias1</span>
</pre></div></td></tr></table></div>
</div>
</div>
<p id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p1148915251886">In this example, <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b80415954532156">case when column1= "0", column1= "value" end</strong> is not enclosed in parentheses and it will not be processed.</p>
</li></ul>
</div>
<ul id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_ul3747585019324"><li id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_li6959423">If <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b36330050932156">SELECT *</strong> and <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b26295357432156">QUALIFY</strong> clauses are both used in an input query, the migrated query returns an additional column for the <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b132781154632156">QUALIFY</strong> clause.<p id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p62634808">An example is as follows:</p>
<p id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p40254682">Teradata query</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_screen42191384113832"><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></pre></div></td><td class="code"><div><pre><span></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">dwQErrDtl_mc</span><span class="p">.</span><span class="n">C03_CORP_TIME_DPSIT_ACCT</span>
<span class="k">WHERE</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="k">AND</span><span class="w"> </span><span class="n">Data_Dt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="s1">'20150801'</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="w"> </span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'YYYYMMDD'</span><span class="w"> </span><span class="p">)</span>
<span class="n">QUALIFY</span><span class="w"> </span><span class="n">ROW_NUMBER</span><span class="p">(</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">Agt_Num</span><span class="p">,</span><span class="w"> </span><span class="n">Agt_Modif_Num</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="p">)</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_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p24966259">Query after migration</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_screen45397439113825"><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">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="p">(</span>
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="n">ROW_NUMBER</span><span class="p">(</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">Agt_Num</span><span class="p">,</span><span class="w"> </span><span class="n">Agt_Modif_Num</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">ROW_NUM1</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">dwQErrDtl_mc</span><span class="p">.</span><span class="n">C03_CORP_TIME_DPSIT_ACCT</span>
<span class="k">WHERE</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="k">AND</span><span class="w"> </span><span class="n">Data_Dt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="s1">'20150801'</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="w"> </span><span class="p">)</span>
<span class="p">)</span><span class="w"> </span><span class="n">Q1</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">Q1</span><span class="p">.</span><span class="n">ROW_NUM1</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_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p649423941312">In the migrated query, the <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b114858264132156">ROW_NUMBER() OVER(PARTITION BY Agt_Num and Agt_Modif_Num ORDER BY NULL) AS ROW_NUM1</strong> column is returned additionally.</p>
</li><li id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_li1236317468215">Named references to a table in a query cannot be migrated from subqueries or functions.<div class="p" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p5671658428"><a name="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_li1236317468215"></a><a name="en-us_topic_0000001706224369_en-us_topic_0000001382048566_li1236317468215"></a>For example, if the input query contains a table named <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b106181686132156">foo</strong>, DSC will not migrate any named references to the table from a subquery (<strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b209794665332156">foo.fooid</strong>) or when called from a function (<strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b16248560932156">getfoo(foo.fooid)</strong>).<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_screen1825814834512"><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">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">foo</span>
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">foosubid</span><span class="w"> </span><span class="k">IN</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">foosubid</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">getfoo</span><span class="p">(</span><span class="n">foo</span><span class="p">.</span><span class="n">fooid</span><span class="p">)</span><span class="w"> </span><span class="n">z</span>
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">z</span><span class="p">.</span><span class="n">fooid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">foo</span><span class="p">.</span><span class="n">fooid</span>
<span class="w"> </span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
</div>
</li><li id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_li1368151116915">The database with the schema name should be changed to <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b1410512436717">SET SESSION CURRENT_SCHEMA</strong>.
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_table584475133312" frame="border" border="1" rules="all"><thead align="left"><tr id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_row1845125118331"><th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.5.3.2.1.3.1.1"><p id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p7845451203315"><strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b2269344179">TD Syntax</strong></p>
</th>
<th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.5.3.2.1.3.1.2"><p id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_p3845751203317"><strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b74663451077">Syntax After Migration</strong></p>
</th>
</tr>
</thead>
<tbody><tr id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_row1184555163312"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.3.2.1.3.1.1 "><pre class="screen" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_screen6122325542">DATABASE SCHTERA </pre>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.3.2.1.3.1.2 "><pre class="screen" id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_screen798164185416">SET SESSION CURRENT_SCHEMA TO SCHTERA</pre>
</td>
</tr>
</tbody>
</table>
</div>
</li><li id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_li436411461115">The input file contains the table-specific keyword <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b136941947971">MULTISET VOLATILE</strong>, but GaussDB T, GaussDB A, and GaussDB(DWS) do not support it. Therefore, the tool replaces it with the <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b07601048372">LOCAL TEMPORARY/UNLOGGED </strong>keyword during the migration process. Use the <strong id="EN-US_TOPIC_0000001819336093__en-us_topic_0000001706224369_en-us_topic_0000001382048566_b18997349470"><a href="dws_16_0014.html#EN-US_TOPIC_0000001819416085__en-us_topic_0000001706224349_en-us_topic_0000001432527901_li9493135323214">session_mode</a></strong> configuration parameter to set the default table type (SET/MULTISET) for CREATE TABLE.</li></ul>
</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>