I haven't ever used bit maps in Oracle, but you can certainly use a number to store the bits. A "number" data type is actually a decimal integer, but the conversion beteen decimal and binary is simple. If their isn't a delivered function to test whether or not a bit is set, you could always write a PL/SQL function to test for it. Setting and clearing the bits are easy. Just set the variable to 0 (zero) to clear all bits, and set individual bits by adding the decimal equivalent to the current value. For example, val = 0 clears all bits; val = 1 sets bit 0; val = 2 sets bit 1; val = 4 set bit 2; val = 1 + 4 sets bit 0 and bit 2; etc. In your example, you would set the first, second and fourth bits, which is the same as setting val = 2^1 + 2^2 + 2^4 (or val = 2 + 4 + 16).