forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
63 lines
9.8 KiB
HTML
63 lines
9.8 KiB
HTML
<a name="EN-US_TOPIC_0000001233430183"></a><a name="EN-US_TOPIC_0000001233430183"></a>
|
|
|
|
<h1 class="topictitle1">Bit String Types</h1>
|
|
<div id="body8662426"><p id="EN-US_TOPIC_0000001233430183__a9868628d91ca44e5b3644935d31f5e05">Bit strings are strings of 1's and 0's. They can be used to store bit masks.</p>
|
|
<p id="EN-US_TOPIC_0000001233430183__af997b2014ffd47209add46388ae97ea6"><span id="EN-US_TOPIC_0000001233430183__text1670543084">GaussDB(DWS)</span> supports two SQL bit types: <strong id="EN-US_TOPIC_0000001233430183__en-us_topic_0058965598_b842352706103333">bit(n)</strong> and <strong id="EN-US_TOPIC_0000001233430183__en-us_topic_0058965598_b842352706103341">bit varying(n)</strong>, where <strong id="EN-US_TOPIC_0000001233430183__en-us_topic_0058965598_b842352706103347">n</strong> is a positive integer.</p>
|
|
<p id="EN-US_TOPIC_0000001233430183__abbbd734c9e564b3cac9a092ed8c395fe">The <strong id="EN-US_TOPIC_0000001233430183__en-us_topic_0085032598_b842352706103439">bit</strong> type data must match the length <strong id="EN-US_TOPIC_0000001233430183__en-us_topic_0085032598_b842352706103446">n</strong> exactly. It is an error to attempt to store shorter or longer bit strings. The <strong id="EN-US_TOPIC_0000001233430183__b842352706104137">bit varying</strong> data is of variable length up to the maximum length <strong id="EN-US_TOPIC_0000001233430183__b842352706104214">n</strong>; longer strings will be rejected. Writing <strong id="EN-US_TOPIC_0000001233430183__b842352706104248">bit</strong> without a length is equivalent to <strong id="EN-US_TOPIC_0000001233430183__b842352706104310">bit(1)</strong>, while <strong id="EN-US_TOPIC_0000001233430183__b842352706104328">bit varying</strong> without a length specification means unlimited length.</p>
|
|
<div class="note" id="EN-US_TOPIC_0000001233430183__n48cf2cb5f53046888aed0b5cb02c0cfb"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233430183__ab9da60b095364e7bbcc373593e76dd4a">If one explicitly casts a bit-string value to <strong id="EN-US_TOPIC_0000001233430183__b1590912386575">bit(n)</strong>, it will be truncated or zero-padded on the right to be exactly <strong id="EN-US_TOPIC_0000001233430183__b590983815718">n</strong> bits, without raising an error. Similarly, if one explicitly casts a bit-string value to <strong id="EN-US_TOPIC_0000001233430183__b460574512590">bit varying(n)</strong>, the bits after <strong id="EN-US_TOPIC_0000001233430183__b54733715117">n</strong> places will be truncated.</p>
|
|
</div></div>
|
|
<p id="EN-US_TOPIC_0000001233430183__p1832272124819">The following is an example of using the bit string type:</p>
|
|
<ol id="EN-US_TOPIC_0000001233430183__ol7473549185312"><li id="EN-US_TOPIC_0000001233430183__li12473449205311">Create a sample table <strong id="EN-US_TOPIC_0000001233430183__b1917083610114">bit_type_t1</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233430183__screen1250932713505"><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">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">bit_type_t1</span><span class="w"> </span>
|
|
<span class="p">(</span>
|
|
<span class="w"> </span><span class="n">BT_COL1</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">BT_COL2</span><span class="w"> </span><span class="nb">BIT</span><span class="p">(</span><span class="mi">3</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">BT_COL3</span><span class="w"> </span><span class="nb">BIT</span><span class="w"> </span><span class="nb">VARYING</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
|
|
<span class="p">)</span><span class="w"> </span><span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">REPLICATION</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001233430183__li14474449105314">Insert data:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233430183__screen1994602585115"><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">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">bit_type_t1</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="s1">'101'</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="s1">'00'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001233430183__p1595614309549">An error is reported if an inserted string exceeds the length of this data type.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233430183__screen20946173911519"><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">bit_type_t1</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="s1">'10'</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="s1">'101'</span><span class="p">);</span>
|
|
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="nb">bit</span><span class="w"> </span><span class="n">string</span><span class="w"> </span><span class="k">length</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="n">does</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="k">match</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nb">bit</span><span class="p">(</span><span class="mi">3</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">bt_col2</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001233430183__li11474549165316">Data is converted if it exceeds the length of this data type.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233430183__screen398284615529"><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">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">bit_type_t1</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="s1">'10'</span><span class="p">::</span><span class="nb">bit</span><span class="p">(</span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="n">B</span><span class="s1">'101'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001233430183__li174751049185312">View data:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233430183__screen1241322065311"><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">bit_type_t1</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">bt_col1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">bt_col2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">bt_col3</span><span class="w"> </span>
|
|
<span class="c1">---------+---------+---------</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">101</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">00</span>
|
|
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">100</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">101</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 class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0008.html">Data Types</a></div>
|
|
</div>
|
|
</div>
|
|
|