Oracle: двоичный целочисленный тип - PullRequest
0 голосов
/ 12 августа 2011

Я хочу в основном иметь тип "id" в Oracle.

Примером, который удовлетворил бы мои потребности, было бы 32/64 битное целое число, где NULL представлено как -INT_MIN.

Мне не нужно, чтобы это была переменная длина (например, NUMBER). Я подумал об использовании RAW, но не верю, что существует неявное преобразование из RAW в целые числа.

Кажется, вариант BINARY_DOUBLE. Это лучший подход?

Ответы [ 2 ]

3 голосов
/ 12 августа 2011

Используйте NUMBER(10, 0), что эквивалентно NUMBER(10).BINARY_DOUBLE - представление с плавающей точкой, а не целое число.Я полагаю, не пытайтесь угадать базу данных, если у вас нет особых причин для этого.Вы можете отговаривать себя от закулисной оптимизации данных, которую может сделать CBO (хотя я не знаю, есть ли они).Вы говорите, что хотите целое число, поэтому используйте целое число.

И почему вы хотите представить NULL как -INT_MIN?Представлять NULL как NULL.

0 голосов
/ 12 августа 2011

Не уверен в ваших требованиях, но да, похоже, вы правы:

http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i16209

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...