Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: bitand functions and NUMBER(20)
Not sure if this impacts your situation, but I'll mention it.
Thomas Kyte has a lot to say in his Expert Oracle database architecture on number types, hardware verses software. The NUMBER type is a software datatype. "We cannot use native hardware operations to add two NUMBER types together, as it is emulated in the software. .... When we add two floating point numbers together, Oracle will use the hardware to perform the operation.
(NUMBER is about 50 times faster, but not as precise....)
Joel Patterson
Database Administrator
joel.patterson_at_crowley.com
x72546
904 727-2546
-----Original Message-----
From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Stefan Kuhn
Sent: Thursday, July 19, 2007 9:47 AM
To: oracle-l_at_freelists.org
Subject: Re: bitand functions and NUMBER(20)
On Thursday 19 July 2007 15:30, Mark W. Farnham wrote:
> I'm curious how you're establishing the value that Oracle is returning.
Hm, I assumed that 9.2234E+18 is different from 9368617832122679304, which
would be 9.3686E+18. I also used Tora for the query, and it displays
9223372036854775807.
Stefan
>
> This could possibly just be a problem with the column format not being wide
> enough for a fully expressed displayed answer.
>
> Regards,
>
> mwf
>
> -----Original Message-----
> From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org]
> On Behalf Of Stefan Kuhn
> Sent: Thursday, July 19, 2007 8:18 AM
> To: oracle-l_at_freelists.org
> Subject: bitand functions and NUMBER(20)
>
> Hi all,
> I have got a column defined as NUMBER(20) and want to use bit functions on
> it.
> It seems that oracle bitand function is restricted in length. To give an
> example:
> select bitand(10846370260800065548,9368617832122679304) from TABLE;
> returns 9.2234E+18, although the second figure is a subset of bits in first
> figure. So result should be 9368617832122679304.
> To make sure my figures are right, I did
> select 10846370260800065548 & 9368617832122679304;
> in Mysql and it gave 9368617832122679304.
> The problem does arise with figures of a certain length.
> What to do best (apart from changing the column type, which I would like to
> avoid)?
> I hope the question isn't too trivia...
> Stefan
-- Stefan Kuhn BSc MA IPB Halle AG Bioinformatik & Massenspektrometrie Weinberg 3 06120 Halle http://www.ipb-halle.de http://msbi.bic-gh.de skuhn_at_ipb-halle.de Tel. +49 (0) 345 5582 1474 Fax.+49 (0) 345 5582 1409 -- http://www.freelists.org/webpage/oracle-l -- http://www.freelists.org/webpage/oracle-lReceived on Thu Jul 19 2007 - 10:28:10 CDT
![]() |
![]() |