Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Bitwise masking...

Re: Bitwise masking...

From: Lev Smirnov <leo_at_dionis.sura.com.ru>
Date: Fri, 29 Dec 2000 06:24:18 GMT
Message-ID: <92hamf$o6b$1@nnrp1.deja.com>

In article <92gnkk$9o1$1_at_nnrp1.deja.com>,   nickvysh_at_my-deja.com wrote:
> Don't know about OR, XOR but you can do AND.
> Try:
>
> select decode(bitand(6,3),2,'it works!','doesnt work') from dual
>
> In article <q0Q26.20$Gf6.1572_at_news3.voicenet.com>,
> "JAP" <JAP_at_unknown.com> wrote:
> > I have a (10,0) Number format field that I would like to run logical
 bitwise
> > operations using masks. For example AND, OR and Exclusive OR
 operations...
> >
> > 0011111111
> > 0000001000 AND
> > =============
> > return TRUE
> >
> > Is this possible using:
> >
> > * PL/SQL
> > * native or developed functions
> > * Stored procedures
> >
> > Thanks for any help,
> > Schmen
> >
> >
>
> Sent via Deja.com
> http://www.deja.com/
>

You can use UTL_RAW package:

SELECT UTL_RAW.BIT_AND(HEXTORAW(TO_CHAR(255,'FM0X')),

                       HEXTORAW(TO_CHAR(16,'FM0X'))) "AND" FROM DUAL;

SELECT UTL_RAW.BIT_XOR(HEXTORAW(TO_CHAR(255,'FM0X')),
                       HEXTORAW(TO_CHAR(16,'FM0X'))) "XOR" FROM DUAL;

SELECT UTL_RAW.BIT_OR(HEXTORAW(TO_CHAR(255,'FM0X')),
                       HEXTORAW(TO_CHAR(16,'FM0X'))) "OR" FROM DUAL;


SELECT DECODE(UTL_RAW.BIT_AND(HEXTORAW(TO_CHAR(255,'FM0X')),
                              HEXTORAW(TO_CHAR(16,'FM0X'))),
              HEXTORAW(TO_CHAR(16,'FM0X')),
              'TRUE','FALSE') FROM DUAL;

Lev Smirnov
Brainbench MVP for Oracle Admin
http://www.brainbench.com

Sent via Deja.com
http://www.deja.com/ Received on Fri Dec 29 2000 - 00:24:18 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US