Number类型接口
OCINumberFromText
功能描述
将字符串转换为OCINumber。
功能说明
根据指定的格式将给定的字符串转换为 NUMBER。 有关格式和多语言参数的说明,请参见TO_NUMBER 转换函数。
接口信息
函数/过程
OCINumberFromText的语法如下:
sword OCINumberFromText ( OCIError *err,
const OraText *str,
ub4 str_length,
const OraText *fmt,
ub4 fmt_length,
const OraText *nls_params,
ub4 nls_p_length,
OCINumber *number );
参数解释如下:
- err(IN/OUT):OCI 错误句柄。如果有错误,则记录在err中,并且该函数返回OCI_ERROR。 通过调用 OCIErrorGet() 获取诊断信息。
- str(IN):要转换为 OCINumber的输入字符串。例如”1234567890-“,” .10”,” -.10”,” 1”,“$123.45”,“123.456”等格式。
- str_length(IN):输入字符串的大小。
- fmt(IN):转换格式。支持”9999999999S”,“99.99”,“B9999”,“FML999.99”,“FM999.009”等转换格式。
- fmt_length(IN):转换格式长度。
- nls_params(IN):全局支持格式。如果是 NULL 字符串 (“”),则使用会话的默认参数。
- nls_p_length(IN):nls_params的长度。
- number (OUT):输出的OCINumber类型。
其他说明
无
OCINumberToText
功能描述
根据指定格式将 OCINumber转换为字符串。
功能说明
根据格式转换为字符串,格式可以参考TO_NUMBER 函数参数。
接口信息
函数/过程
OCINumberToText的语法如下:
sword OCINumberToText ( OCIError *err,
const OCINumber *number,
const OraText *fmt,
ub4 fmt_length,
const OraText *nls_params,
ub4 nls_p_length,
ub4 *buf_size,
OraText *buf );;
参数解释如下:
- err(IN/OUT):OCI 错误句柄。如果有错误,则记录在err中,并且该函数返回OCI_ERROR。 通过调用 OCIErrorGet() 获取诊断信息。
- number (IN):要转换的OCINumber类型。
- fmt(IN):转换格式。支持”9999999999S”,“99.99”,“B9999”,“FML999.99”,“FM999.009”等转换格式。
- fmt_length(IN):转换格式长度。
- nls_params(IN):全局支持格式。如果是 NULL 字符串 (“”),则使用会话的默认参数。
- nls_p_length(IN):nls_params的长度。
- buf_size(OUT):转换后的字符串所在的缓冲区大小。
- str(OUT):转换后的字符串所在的缓冲区。
其他说明
无
OCINumberIsInt
功能描述
测试 OCINumber 是否为整数。
功能说明
测试 OCINumber 是否为整数,如果参数 number 或 result 为 NULL,则此函数返回错误。
接口信息
函数/过程
OCINumberIsInt 的语法如下:
sword OCINumberIsInt ( OCIError *err,
const OCINumber *number,
boolean *result );
参数解释如下:
- err(IN/OUT):OCI 错误句柄。如果有错误,则记录在err中,并且该函数返回OCI_ERROR。 通过调用 OCIErrorGet() 获取诊断信息。
- number (IN):要转换的OCINumber类型。
- result (OUT):如果是整数值则设置为TRUE;否则为FALSE。
其他说明
无
OCINumberToInt
功能描述
转换OCINumber 为整数。
功能说明
这是一个原生类型转换函数。 它将给定的 Oracle NUMBER 转换为 xbn 形式的整数,例如 ub2、ub4 或 sb2。
如果 number 或 rsl 为 NULL,如果 number 太大(溢出)或太小(下溢),或者在 rsl_flag 中传递了无效的符号标志值,则此函数返回错误。
接口信息
函数/过程
OCINumberToInt 的语法如下:
sword OCINumberToInt ( OCIError *err,
const OCINumber *number,
uword rsl_length,
uword rsl_flag,
void *rsl );
参数解释如下:
- err(IN/OUT):OCI 错误句柄。如果有错误,则记录在err中,并且该函数返回OCI_ERROR。 通过调用 OCIErrorGet() 获取诊断信息。
- number (IN):要转换的OCINumber类型。
- rsl_length(IN):所需结果的大小。
- rsl_flag(IN):指定输出符号的标志,如下所示:
- OCI_NUMBER_UNSIGNED:无符号值。
- OCI_NUMBER_SIGNED:有符号值。
- rsl(OUT):指向结果空间的指针。
其他说明
无
OCINumberToReal
功能描述
转换OCINumber 为实数。
功能说明
此函数将 OCINumber 转换为系统原生的实数类型。 此函数仅将 NUMBER 转换为精度为 LDBL_DIG、DBL_DIG 或 FLT_DIG 的数字,并删除尾随零。 这些常量在 float.h 中定义。
用户必须将有效的 OCINumber 传递给此函数。 否则结果是未定义的。
接口信息
函数/过程
OCINumberToReal 的语法如下:
sword OCINumberToReal ( OCIError *err,
const OCINumber *number,
uword rsl_length,
void *rsl );
参数解释如下:
- err(IN/OUT):OCI 错误句柄。如果有错误,则记录在err中,并且该函数返回OCI_ERROR。 通过调用 OCIErrorGet() 获取诊断信息。
- number (IN):要转换的OCINumber类型。
- rsl_length(IN):所需结果的大小,等于
sizeof ( { float | double | long double } )
。 - rsl(OUT):指向结果空间的指针。
其他说明
无