views:

939

answers:

2

I work with an application which uses rather big numbers and I need to store data as an unsigned 64-bit integer. I prefer to just store it without worrying about bit manipulation or anything like that so different programs can use the data in different ways.

+1  A: 

AFAIK, You would have to create a custom type. Pointers here although that article is more for restricting negative numbers...

KiwiBastard
+4  A: 

You can store the value in a NUMERIC type with a scale of 0, which will retain the integer semantics required. The NUMERIC type will allow negative numbers, although you could set up a constraint to require positive integers.

The maximum precision for NUMERIC is 38 decimal digits. 2**64 is somewhere around 18 or 19 decimal digits, so NUMERIC(19,0) would likely work just fine for this data.

Ken Gentle
Isn't 2 to the power of 64 '18,446,744,073,709,551,616' - or 20 digits?If so, would that mean you need a NUMERIC(20,0) to store it?
Stephen Edmonds