Я использую версию 11.2, и нет прямой поддержки uint64 в полях таблицы. Что вы предлагаете делать перформанс? Это должен быть первичный ключ.
Спасибо
возможно, преобразовать его в символ, затем вставить его как символ, с to_number, чтобы поместить его в правильный формат?
Я ничего не знаю об Oracle, но MS SQL страдает аналогично, и я закончил тем, что хранил свои 64-битные целые числа без знака в двоичных (8) полях. Если у Oracle есть похожие заглавные буквы (и я не могу себе этого представить), возможно, то же самое будет работать для вас.
В результате на SQL Server двоичные (n) поля сравниваются с другими двоичными (n) полями, которые эффективно сравниваются как байтовые массивы, и если они имеют одинаковый размер, это означает, что они также сравниваются как представления с прямым порядком байтов (если вы так их сохранили) и ты бы с ума сошел)
Извините, я не разбираюсь в Oracle. Надо потанцевать с тем, кто тебя принес =)
Я использую тип данных RAW (8) и пишу его с помощью:
uint64 i;
Bytes key((unsigned char*)&i, 8);
statement->setBytes(1, key);
Быстро и компактно, и, кажется, работает хорошо.