Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: decimal to binary masks
A copy of this was sent to spectre_at_hkstar.com (Steve A)
(if that email address didn't require changing)
On Wed, 9 Feb 2000 12:16:04 +0800, you wrote:
>Hi,
>I want to test for a given bit being set.
>for example a number field being used as flag storage.
>0=no lock
>1=invoiced_locked
>2=shipping_locked
>4=packing_locked
>etc
>
>if bitset(flag,2)
>then
>.....
>else
>XXXXX
>endif
>
>I don't want to have to use UTL_RAW, since it seems to only work on
>varchar2 & rawtypes
>
>any routines out there
>
>
>steve
bitand()
1* select rownum, bitand( 1234, power(2,rownum-1) )+0, power(2,rownum-1) from
all_users where rownum < 32
ops$tkyte_at_8i> /
ROWNUM BITAND(1234,POWER(2,ROWNUM-1))+0 POWER(2,ROWNUM-1)
---------- -------------------------------- ----------------- 1 0 1 2 2 2 3 0 4 4 0 8 5 16 16 6 0 32 7 64 64 8 128 128 9 0 256 10 0 512 11 1024 1024 12 0 2048 13 0 4096 14 0 8192 15 0 16384 16 0 32768 17 0 65536 18 0 131072 19 0 262144 20 0 524288 21 0 1048576 22 0 2097152 23 0 4194304 24 0 8388608 25 0 16777216 26 0 33554432 27 0 67108864 28 0 134217728 29 0 268435456 30 0 536870912 31 0 1073741824
The "+0" part is to let sqlplus believe this is a number, otherwise it believes it is a RAW and won't print it.
--
See http://osi.oracle.com/~tkyte/ for my columns 'Digging-in to Oracle8i'...
Current article is "Part I of V, Autonomous Transactions" updated June 21'st
Thomas Kyte tkyte_at_us.oracle.com Oracle Service Industries Reston, VA USA
Opinions are mine and do not necessarily reflect those of Oracle Corporation Received on Wed Feb 09 2000 - 07:01:16 CST
![]() |
![]() |