doc-exports/docs/dws/dev/dws_06_0012.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

250 lines
38 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<a name="EN-US_TOPIC_0000001363052572"></a><a name="EN-US_TOPIC_0000001363052572"></a>
<h1 class="topictitle1">Character Types</h1>
<div id="body32001227"><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a6ca773d83bb1409fb885ed86085330bb"><a href="#EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_t0c62e4928aa34bdbb99c6b9fe3c6996b">Table 1</a> lists the character types that can be used in <span id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_text139290416">GaussDB(DWS)</span>. For string operators and related built-in functions, see <a href="dws_06_0030.html">Character Processing Functions and Operators</a>.</p>
<div class="tablenoborder"><a name="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_t0c62e4928aa34bdbb99c6b9fe3c6996b"></a><a name="en-us_topic_0000001145830639_t0c62e4928aa34bdbb99c6b9fe3c6996b"></a><table cellpadding="4" cellspacing="0" summary="" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_t0c62e4928aa34bdbb99c6b9fe3c6996b" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Character types</caption><thead align="left"><tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_r48fb566f9f0d4a03ad864bfeb363e3e1"><th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.2.2.5.1.1"><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a3e45b73cd8624ebebae1a47efd67cd84"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b84235270691445">Name</strong></p>
</th>
<th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.2.2.5.1.2"><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a8d3784bfcf594f2382bfa5cf9581f801"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b842352706212013">Description</strong></p>
</th>
<th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.2.2.5.1.3"><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p17874185110911">Length</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.2.2.5.1.4"><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a2cd2df9772534765acd5ee26cd8bb5de"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b84235270618324">Storage Space</strong></p>
</th>
</tr>
</thead>
<tbody><tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_r5cdae03b9f694e87a9fc73945c47bf55"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.1 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_aba24c9dd6d2f48f88710427f19517bd4">CHAR(n)</p>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ada0b4da3d1344678b88ef91e7798debd">CHARACTER(n)</p>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ad3a43e05b96440f4804b0e528218a226">NCHAR(n)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.2 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_aebba5f83f3db4cca9c1e185788ad67aa">Fixed-length character string. If the length is not reached, fill in spaces.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.3 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p48744511794"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b15343104813599">n</strong> indicates the string length. If it is not specified, the default precision <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b12349848135919">1</strong> is used. The value of <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b8714720637">n</strong> is less than <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b9214123414315">10485761</strong>.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.4 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a95d40bedb5864cf18f19047b0f0a0a07">The maximum size is 10 MB.</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_re885c3d0bbf346aeb6435c14262043d8"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.1 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ab014f68001144400b41cfc54fda1e4aa">VARCHAR(n)</p>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a2dc8d72bdeca43d49f3d6452bae55361">CHARACTER VARYING(n)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.2 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ad637f2c60b4a4f748eead898cbe1885c">Variable-length string.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.3 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p16874651195"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b10324636636">n</strong> indicates the byte length. The value of <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b11325173619317">n</strong> is less than <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1264919476314">10485761</strong>.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.4 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a5ac507dfe90246ca8b8386ca8d1ac1d7">The maximum size is 10 MB.</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_r8998b90127fb4011bbcf6d59d183ca7b"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.1 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a619dc1f49a18404a946cbe7cc8139398">VARCHAR2(n)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.2 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a8a58aea7152b4616b5d1848be951b887">Variable-length string. It is an alias for VARCHAR(n) type, compatible with Oracle.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.3 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p108742511697"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b11481615410">n</strong> indicates the byte length. The value of <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b41549112416">n</strong> is less than <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b14154216411">10485761</strong>.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.4 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a207d279cc9ae4f16bdf353ae08029cf9">The maximum size is 10 MB.</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_re58e7519ee3d42a7b13ab2dac6a81709"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.1 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a9eb4c3cf6f174085b2823bf348cc90d1">NVARCHAR2(n)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.2 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ab86e407b90404623974f17f24f63507f">Variable-length string.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.3 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p9874135117913"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1698611161446">n</strong> indicates the string length. The value of <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b799217160418">n</strong> is less than <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b48488211244">10485761</strong>.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.4 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a66d8a16da7ab424c885b7b3febb76f26">The maximum size is 10 MB.</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_r83b2ab5a35e84e50a3e4011e07590528"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.1 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ac041c0bc12074156937452c217da5438">CLOB</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.2 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a558c25e808e54b339752e8beb397f139">Variable-length string. A big text object. It is an alias for TEXT type, compatible with Oracle.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.3 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p4874155116915">-</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.4 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a2551e92cc63443df98c5ba46bb43bff6">The maximum size is 1,073,733,621 bytes (1 GB - 8203 bytes).</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_r6cc3e4b49ebc43329a001537c9faba5c"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.1 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_aab41bc55ee3e45ccb73da60a081fe524">TEXT</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.2 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a5abb2889b4c741a989e84ddd16d53d08">Variable-length string.</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.3 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p3875155111919">-</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.2.2.5.1.4 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a76df4c92772c4bb1ae336ae79516ff39">The maximum size is 1,073,733,621 bytes (1 GB - 8203 bytes).</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="note" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_n92683b0a610f42f8ba3f465d4c088508"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ul1063435691415"><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li1634856131414">In addition to the size limitation on each column, the total size of each tuple is 1,073,733,621 bytes (1 GB 8023 bytes).</li><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li1607593142">For string data, you are advised to use variable-length strings and specify the maximum length. To avoid truncation, ensure that the specified maximum length is greater than the maximum number of characters to be stored. You are not advised to use fixed-length character types such as CHAR(n), NCHAR(n), and CHARACTER(n) unless you know that the data type is a fixed-length character string.</li></ul>
</div></div>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p259791010157"><span id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_text1712644613">GaussDB(DWS)</span> has two other fixed-length character types, as listed in <a href="#EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ta7a9f8927f4b419e9d1c0a01d2dac911">Table 2</a>.</p>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p10653977156">The name type is used only in the internal system catalog as the storage identifier. The length of this type is 64 bytes (63 characters plus the terminator). This data type is not recommended for common users. When the name type is aligned with other data types (for example, in multiple branches of <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1673104314312">case when</strong>, one branch returns the name type and other branches return the text type), the name type may be aligned but characters may be truncated. If you do not want to have 64-bit truncated characters, you need to forcibly convert the name type to the text type.</p>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a10b579e502d54786b1bc51e18195b02b">The type <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b84235270615914">"char"</strong> only uses one byte of storage. It is internally used in the system catalogs as a simplistic enumeration type.</p>
<div class="tablenoborder"><a name="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ta7a9f8927f4b419e9d1c0a01d2dac911"></a><a name="en-us_topic_0000001145830639_ta7a9f8927f4b419e9d1c0a01d2dac911"></a><table cellpadding="4" cellspacing="0" summary="" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ta7a9f8927f4b419e9d1c0a01d2dac911" frame="border" border="1" rules="all"><caption><b>Table 2 </b>Special character types</caption><thead align="left"><tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_r56c54c4cb1674d65857d79ccd5c7fbd7"><th align="left" class="cellrowborder" valign="top" width="25.69%" id="mcps1.3.7.2.4.1.1"><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a0f318fc3178e45e6b9606f6a98572d8e"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b556431115">Name</strong></p>
</th>
<th align="left" class="cellrowborder" valign="top" width="46.7%" id="mcps1.3.7.2.4.1.2"><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_afd8fbd9b531e45c792ccb148fb1ca9db"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1029127920">Description</strong></p>
</th>
<th align="left" class="cellrowborder" valign="top" width="27.61%" id="mcps1.3.7.2.4.1.3"><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a09faf26e62b64d9792b0ac22dd8610dd"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b84235270618433">Storage Space</strong></p>
</th>
</tr>
</thead>
<tbody><tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_rb700bbe3c7024e5793ac3b03e96e5310"><td class="cellrowborder" valign="top" width="25.69%" headers="mcps1.3.7.2.4.1.1 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a241fa051a4e74daa8f487ef02f955679">name</p>
</td>
<td class="cellrowborder" valign="top" width="46.7%" headers="mcps1.3.7.2.4.1.2 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ac5be69ca53094afa90a1b312ffb9f9ec">Internal type for object names</p>
</td>
<td class="cellrowborder" valign="top" width="27.61%" headers="mcps1.3.7.2.4.1.3 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_aa2b504804e6142a5996844627f86b77a">64 bytes</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_r8d7140940cb142fea167277be5f38ed9"><td class="cellrowborder" valign="top" width="25.69%" headers="mcps1.3.7.2.4.1.1 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a8aba13345a1142c8bb4b264c5f07b2dd">"char"</p>
</td>
<td class="cellrowborder" valign="top" width="46.7%" headers="mcps1.3.7.2.4.1.2 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_aabd861164d9740379ccf2976736df21e">Single-byte internal type</p>
</td>
<td class="cellrowborder" valign="top" width="27.61%" headers="mcps1.3.7.2.4.1.3 "><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_a6b3403fd4c314a1a8994200e9e7e3afe">1 byte</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_section138161228143512"><h4 class="sectiontitle">Length</h4><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p151681146317">If a field is defined as <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b42974310478">char(n)</strong> or <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b102414711476">varchar(n)</strong>. <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b7539154211482">n</strong> indicates the maximum length. Regardless of the type, the length cannot exceed 10485760 bytes (10 MB).</p>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p8169204612114">When the data length exceeds the specified length <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b11849185095617">n</strong>, the error "value too long" is reported. Of course, you can also specify to automatically truncate the data that exceeds the length.</p>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p48126560547">Example:</p>
<ol id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ol064373712569"><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li18643103795620">Create table <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b19600312587">t1</strong> and specify the character type of its columns.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_screen838111745914"><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">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">5</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">5</span><span class="p">));</span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li89625468562">An error is reported when the length of data inserted into the table <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b458811393103">t1</strong> exceeds the specified length.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_screen716816495020"><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">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'bookstore'</span><span class="p">,</span><span class="s1">'123'</span><span class="p">);</span>
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="n">too</span><span class="w"> </span><span class="n">long</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nb">character</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
<span class="n">CONTEXT</span><span class="p">:</span><span class="w"> </span><span class="n">referenced</span><span class="w"> </span><span class="k">column</span><span class="p">:</span><span class="w"> </span><span class="n">a</span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li1482815251608">Insert data into table <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b7138102117168">t1</strong> and specify that the data is automatically truncated when the length exceeds the specified bytes.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_screen17529755165211"><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">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'bookstore'</span><span class="p">::</span><span class="nb">char</span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="s1">'12345678'</span><span class="p">::</span><span class="nb">varchar</span><span class="p">(</span><span class="mi">5</span><span class="p">));</span>
<span class="k">INSERT</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">1</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">t1</span><span class="p">;</span>
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">b</span>
<span class="c1">-------+-------</span>
<span class="w"> </span><span class="n">books</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">12345</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</li></ol>
</div>
<div class="section" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_section08719171214"><h4 class="sectiontitle">Fixed Length and Variable Length</h4><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p1692620249215">All character types can be classified into fixed-length strings and variable-length strings.</p>
<ul id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ul159264241223"><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li3926102420218">For a fixed-length string, the length must be specified. If the length is not specified, the default length <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b18651173121213">1</strong> is used. If the data length does not reach the specified length, spaces are automatically added to the end of the string. However, the added spaces are meaningless and will be ignored in actual use, such as comparison, sorting, and type conversion.</li><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li1092632412220">For a variable-length string, if the length is specified, the specified length indicates the maximum length of the data that can be stored. If the length is not specified, it means any length is available.</li></ul>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p17236173913274">Example:</p>
<ol id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ol16531948172717"><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li1553134862716">Create table <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b890521512159">t2</strong> and specify the character type of its columns.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_screen19112150134013"><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">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">5</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">5</span><span class="p">));</span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li177541553122716">Insert data into table <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1970763216152">t2</strong> and query the byte length of column <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b18456436131515">a</strong>. During table creation, the character type of column <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b17115113316173">a</strong> is specified as <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b660512414171">char(5)</strong> and fixed-length. If the data length does not reach 5 bytes, spaces are added. Therefore, the queried data length is <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b12308142451916">5</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_screen108209215415"><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">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'abc'</span><span class="p">,</span><span class="s1">'abc'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">1</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="n">lengthb</span><span class="p">(</span><span class="n">a</span><span class="p">),</span><span class="n">b</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">t2</span><span class="p">;</span>
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">lengthb</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">b</span>
<span class="c1">-------+---------+-----</span>
<span class="w"> </span><span class="n">abc</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">abc</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li8610138122810">After the conversion by using the function, the actual queried length of the column <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1820374913314">a</strong> is <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b437535233115">3</strong> bytes.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_screen193941212151617"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">t2</span><span class="p">;</span>
<span class="w"> </span><span class="o">?</span><span class="k">column</span><span class="o">?</span>
<span class="c1">----------</span>
<span class="w"> </span><span class="n">t</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
<span class="k">SELECT</span><span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nb">text</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">val</span><span class="p">,</span><span class="n">lengthb</span><span class="p">(</span><span class="n">val</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">t2</span><span class="p">;</span>
<span class="w"> </span><span class="n">val</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">lengthb</span>
<span class="c1">-----+---------</span>
<span class="w"> </span><span class="n">abc</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</li></ol>
</div>
<div class="section" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_section1721613571612"><h4 class="sectiontitle">Bytes and Characters</h4><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p181523363541"><strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b58661643133616">n</strong> means differently in <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1961745371">VARCHAR2(n)</strong> and <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b27431878377">NVARCHAR2(n)</strong>.</p>
<ul id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ul14170114512541"><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li181705454542">In <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b11173102383713">VARCHAR2(n)</strong> <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1143402653715">n</strong> indicates the number of bytes.</li><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li5170154518545">In <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b7296195383720">NVARCHAR2(n)</strong>, <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1522410573371">n</strong> indicates the number of characters.<div class="note" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_note1811181213108"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p2111412101011">Take an UTF8-encoded database as an example. A letter occupies one byte, and a Chinese character occupies three bytes. <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b17107123124416">VARCHAR2(6)</strong> allows for six letters or two Chinese characters, and <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b09373815445">NVARCHAR2(6)</strong> allows for six letters or six Chinese characters.</p>
</div></div>
</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_section113891731872"><h4 class="sectiontitle">Empty Strings and NULL</h4><p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p14189191112228">In Oracle compatibility mode, empty strings and NULL are not distinguished. When a statement is executed to query or import data, empty strings are processed as NULL.</p>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p25446271017">As such, <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b9711191919497">= "</strong> cannot be used as the query condition, and so does <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b1523017383497">is ''</strong>. Otherwise, no result set is returned. The correct usage is <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b493810291472">is null</strong>, or <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b7708540204715">is not null</strong>.</p>
<p id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_p577113125414">Example:</p>
<ol id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_ol202031529155416"><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li420320298548">Create table <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b87629418423">t4</strong> and specify the character type of its columns.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_screen115923755817"><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">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t4</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">text</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li194111331205411">Insert data into table <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b848531420507">t4</strong>. The inserted value contains an empty string and NULL.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_screen1074811464584"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">t4</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'abc'</span><span class="p">),(</span><span class="s1">''</span><span class="p">),(</span><span class="k">null</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">3</span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_li13734392555">Check whether <strong id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_b191091037195013">t4</strong> contains null values.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001363052572__en-us_topic_0000001145830639_screen1934620488309"><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">SELECT</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="n">a</span><span class="w"> </span><span class="k">isnull</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">t4</span><span class="p">;</span>
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">?</span><span class="k">column</span><span class="o">?</span>
<span class="c1">-----+----------</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span>
<span class="w"> </span><span class="n">abc</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span>
<span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="n">a</span><span class="w"> </span><span class="k">isnull</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">t4</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">a</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="n">a</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">?</span><span class="k">column</span><span class="o">?</span>
<span class="c1">---+----------</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span>
<span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0008.html">Data Types</a></div>
</div>
</div>