使用OCCI在Oracle Database 11g中存储无符号64位整数的最佳方法

时间:2012-09-21 17:21:34

标签: c++ database oracle11g uint64 occi

我使用的是版本11.2,并且表字段中没有对uint64的直接支持。您建议按性能做什么?它必须是主键。

由于

3 个答案:

答案 0 :(得分:1)

可能将它转换为char,然后将其作为char插入,使用to_number将其插入正确的格式?

答案 1 :(得分:1)

我对Oracle一无所知,但MS SQL受到类似的困扰,最后我将我的64位无符号整数存储在二进制(8)字段中。如果Oracle有类似的字段上限(我无法想象它没有),也许这对你有用。

SQL Server上的结果是二进制(n)字段与其他二进制(n)字段相比有效地比较为字节数组,如果大小相同,则意味着它们也比较为大端表示(如果这是如何你存储了它们,你会坚持不去。)

对不起我不熟悉甲骨文。要和那个带来ya =)的那个跳舞。

答案 2 :(得分:1)

我正在使用RAW(8)数据类型,并使用以下命令编写:

uint64 i;
Bytes key((unsigned char*)&i, 8);
statement->setBytes(1, key);

快速而紧凑,似乎运作良好。