测试发现,Pro*C中,不管ORACLE数据库中的number字段是多大,只要字段的值大于绑定的变量所能够容纳的范围,就会出现“ORA-01455: 转换列溢出整数数据类型”。
不过,Pro*C不支持long long(64位)类型的绑定。当number字段的值大于2147483647或小于- 2147483648时,建议使用double类型来绑定,然后再将double类型转换成long long类型。
double temp;
long long value;
//…
EXEC SQL SELECT large_value INTO :temp FROM some_table; //….
value = (long long)temp;
|
还有另一种做法,不过效率没有上一种高:
#include <stdlib>
//….
char buf[22];
long long value;
//….
EXEC SQL SELECT large_value INTO :buf FROM some_table; //…
value = strtoll(buf, NULL, 0); //无符号类型使用strtoull
// 注意:windows平台的函数名为_strtoi64()和_strtoiu64()
|
对应的值的范围为:
数据类型
|
长度(位)
|
数值范围
|
char
|
8
|
-128 至127
|
unsigned char
|
8
|
0至255
|
short
|
16
|
-32768至32767
|
unsigned short
|
16
|
0至65535
|
int
|
32
|
- 2147483648至2147483647
|
unsigned int
|
32
|
0 - 4294967295
|
long long
|
64
|
- 9223372036854775808
至9223372036854775807
|
unsigned long long
|
64
|
0至18446744073709551615
|
供参考。
分享到:
相关推荐
如果运算结果超过16位整数的范围,溢出标志将被置位,且不会写入输出。此外,如果发生除以零的情况,除法无效标志将被置位,其他算术状态位保持不变。操作数类型与前面所述相同。 #### 双整数乘法与除法 双整数的...
例如,当一个整型变量试图存储一个超出其最大值的结果时,就会发生整数溢出;对于浮点数,超过其最大或最小值也可能引发溢出。 2. **Matlab中的溢出问题**: 在Matlab中,溢出主要出现在两个方面:一是整数运算,...
对于溢出检查,C语言默认不做任何处理,因此在处理大整数时需要额外的逻辑来确保结果在整数范围之内。 3. **整数比较**:使用`, `>`, `, `>=`, `==`, `!=`这些比较运算符,我们可以轻松地对两个整数进行大小判断。...
一个程序例子 适用于刚开始学习C++学习的同学
本文将深入探讨“单片机C语言程序整数分离”这一主题,帮助你理解如何在单片机环境中对整数进行位操作,以实现数据的分离和处理。 整数分离通常涉及对整数的各个位进行单独操作,这在单片机应用中尤其常见,因为...
在编程领域,尤其是在C语言中,处理大整数阶乘是一项有趣的挑战,因为C语言标准库并不直接支持大整数运算。本主题的核心是编写一个程序,能够在超出普通整型范围的情况下计算阶乘。以下是对这个主题的详细讨论: 1....
2. **示例**:例如,一个简单的C语言程序,通过`gets()`函数读取用户输入,但没有限制输入长度,这可能导致缓冲区溢出: ```c int main() { char name[8]; printf("Your name: "); gets(name); printf("Hello,...
总之,理解C语言中的整数类型、它们的表示方法以及在计算和比较中的行为是至关重要的,特别是在处理大整数、溢出和类型转换时。程序员需要清楚地知道他们正在使用的数据类型,以避免潜在的错误和不期望的行为。
整数溢出是一种常见的编程错误,特别是在处理数值计算时,可能会导致不可预见的程序行为。在计算机科学中,整数的表示是有固定宽度的,这通常由编程语言或硬件架构决定。例如,32位整数可以表示从 -2^31 到 2^31-1 ...
### 基于整型变量一致化的整数溢出检测 #### 一、研究背景及意义 随着信息技术的发展,软件安全问题日益突出。其中,软件缺陷成为信息安全的主要隐患之一。整数溢出作为一类常见的软件缺陷,其可能导致程序逻辑...
压缩包中的"大整数.C"文件很可能是实现上述算法的源代码,包含具体的C语言实现细节,如变量定义、函数声明、递归调用等。通过阅读和理解这段代码,可以深入学习大整数乘法的原理和C语言的编程技巧。
甲到乙共五十个城市,求出两者之间最短距离和最低花费,用分支定界发
Google Chrome Skia整数溢出漏洞
- **溢出处理**:在C语言中,没有内置的溢出检查机制,所以开发者需要在实现运算函数时自行处理溢出情况。 - **效率优化**:为了提高性能,可以使用位操作、缓存技术、并行计算等方法。 - **错误处理**:良好的...
这个测试案例中,检测结果显示为失败,原因是由于整数溢出导致的堆溢出。微执行(Micro-execution)设置中,malloc函数的参数被设定为符号值,系统默认解析得到的是一个非常大的数值,因此并未触发溢出。 1.2 SARD-...
在编程领域,大整数乘法是一个常见的计算问题,特别是...实际的编程实践中,建议学习开源的大整数库,如GMP(GNU Multiple Precision Arithmetic Library),这些库已经经过了充分的测试和优化,能更好地满足各种需求。
本文将详细讲解SIMATIC系统中的整数数学运算指令,这些指令包括整数加法、整数减法、双整数加法与减法、整数乘法与整数除法,以及相关的错误条件和数据类型。 1. **整数加法和整数减法**: 整数加法与减法指令用于...
C语言大整数减法 C语言中大整数减法是指对两个大整数进行减法运算,以获取它们之间的差值。由于C语言中整数类型的限制,无法直接对大整数进行减法运算,因此需要使用数组来实现大整数的减法。 在给定的代码中,...
- **整数溢出**:当运算结果超出整型变量所能表示的最大范围时,会导致溢出问题,从而引发不可预测的行为。 #### 2. **C语言的缺陷** - **缺乏类型安全**:C语言不提供严格的类型检查机制,这可能导致编译器无法...