返回首页

gbase数据、南大通用产品文档:GBase8sdecdiv() 函数

更新日期:2024年09月11日

decdiv() 函数将两个 decimal 类型值相除。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 640 -

语法
mint decdiv(n1, n2, result) /* result = n1 / n2 */
dec_t *n1;
dec_t *n2;
dec_t *result;
n1
指向第一个运算对象的 decimal 结构的指针。
n2
指向第二个运算对象的 decimal 结构的指针。
quotient
指向包含 n1 除以 n2 的商的 decimal 结构的指针。

语法
quotient 可与 n1 或 n2 相同。

返回代码
0
操作成功。
-1200
操作导致溢出。
-1201
操作导致下溢。
-1202
操作尝试除零。

示例

demo 目录中的文件 decdiv.ec 包含下列样例程序。
/*
* decdiv.ec *

The following program divides two DECIMAL numbers and displays the result.

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 641 -

*/

#include

EXEC SQL include decimal;

char string1[] = "480";
char string2[] = "80";
char result[41];

main()
{
mint x;
dec_t num1, num2, dvd;

printf("DECDIV Sample ESQL Program running.\n\n");

if (x = deccvasc(string1, strlen(string1), &num1))
{
printf("Error %d in converting string1 to DECIMAL\n", x);
exit(1);

}
if (x = deccvasc(string2, strlen(string2), &num2))
{
printf("Error %d in converting string2 to DECIMAL\n", x);
exit(1);
}
if (x = decdiv(&num1, &num2, &dvd))
{
printf("Error %d in converting divide num1 by num2\n", x);
exit(1);
}

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 642 -

if (x = dectoasc(&dvd, result, sizeof(result), -1))
{
printf("Error %d in converting dividend to string\n", x);
exit(1);
}
result[40] = '\0';
printf("\t%s / %s = %s\n", string1, string2, result);

printf("\nDECDIV Sample Program over.\n\n");
exit(0);
}
输出
DECDIV Sample ESQL Program running.

480 / 80 = 6.0

DECDIV Sample Program over.

推送信息默认采用GBK 编码,如果需要修改编码格式,请在采集中心的
conf/snmp_udp_config.properties 文件中修改outputEncoding 属性。

统一数据平台监控与运维系统用户手册
- 178 -
南大通用数据技术股份有限公司
4 常见问题答疑
统一监控中集群节点需要开启的参数

使用 FET_BUF_SIZE 和 SRV_FET_BUF_SIZE 环境变量设置访存缓冲区的大小。
将 SELECT 语句从 Java™ 程序发送到 GBase 8s 数据库时,返回的行或元组将存储
在 GBase 8s JDBC Driver 中的元组缓冲区中。元组缓冲区的缺省大小为返回的元组的大小
或 4096 字节。
可以使用 GBase 8s FET_BUF_SIZE 环境变量重写元组缓冲区的缺省大小。
FET_BUF_SIZE 可以设置为任何小于等于 2 GiB(2147483648)的正整数。如果设置
了 FET_BUF_SIZE 环境变量,
则它的值应大于缺省元组缓冲区大小,
元组缓冲区大小设置
为 FET_BUF_SIZE 的值。
同样,
您可以使用 SRV_FET_BUF_SIZE 环境变量设置本地数据库服务器参与跨服务器分布
式 DML 事务时使用的访存缓冲区的大小。SRV_FET_BUF_SIZE 的最大大小可设置为
1048576(= 1 MiB)。
增加访存缓冲区的大小可以减少 Java™ 程序和数据库之间的网络流量,
还会提高查询性能。
然而,
有时候,
增加访存缓冲区的大小实际上会降低查询的性能。
如果您的 Java 查询具有
多个活动的到数据库的连接或者计算机上的交换空间有限,则可能会发生这种情况。如果
Java 程序或计算机属于这种情况,则可能不希望使
用 FET_BUF_SIZE 或 SRV_FET_BUF_SIZE 环境变量增加访存缓冲区的大小。
有关设置 GBase 8s 环境变量的更多信息,请参阅连接至数据库。有关增加访存缓冲区大小
的更多信息,请参阅《GBase 8s SQL 指南:参考》。



GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 238
-