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

Home -> Community -> Mailing Lists -> Oracle-L -> RE: bitand functions and NUMBER(20)

RE: bitand functions and NUMBER(20)

From: <Joel.Patterson_at_crowley.com>
Date: Thu, 19 Jul 2007 11:28:10 -0400
Message-ID: <02C2FA1C9961934BB6D16DE35707B27B0327E8B3@jax-mbh-01.jax.crowley.com>


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-l
Received on Thu Jul 19 2007 - 10:28:10 CDT

Original text of this message

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