返回首页

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

更新日期:2024年09月11日

ifx_int8toasc() 函数将 int8 类型数值转换为 C char 类型值。
语法

mint ifx_int8toasc(int8_val, strng_val, len)
ifx_int8_t *int8_val;

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

char *strng_val;
mint len;
int8_val
指向 ifx_int8toasc() 将其值转换为文本字符串的 int8 结构的指针。
strng_val
指向 ifx_int8toasc() 放置文本字符串处的字符缓冲区的第一个字节的指针。
len
以字节计算的 strng_val 的大小,对于空终止符,为负 1。
用法
如果 int8 数值不适于放入长度 len 的字符串内,则 ifx_int8toasc() 将该数值转换为
指数计数法。如果该值仍不适合,则 ifx_int8toasc() 以星号填充字符串。 如果该数值比字
符串短,则 ifx_int8toasc() 向左对齐该数值,并用空格填充它的右边。
由于 ifx_int8toasc() 返回的字符串不是以空终止的,因此,在您打印它之前,您必须
将空字符添加到该字符串。
当您使用非缺省的语言环境(US English 之外的一种)时,ifx_int8toasc() 支持
strng_val 字符串中的非 ASCII 字符。要获取更多信息,
返回代码
0
转换成功。
-1207
被转换的值不适于放入分配了的空间内。
示例
demo 目录中的文件 int8toasc.ec 包含下列样例程序。
/*
* ifx_int8toasc.ec *

The following program converts three string
constants to INT8 types and then uses ifx_int8toasc()
to convert the INT8 values to C char type values.
*/

#include
#define END sizeof(result)

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


EXEC SQL include "int8.h";

char string1[] = "-12,555,444,333,786,456";
char string2[] = "480";
char string3[] = "5.2";
char result[40];

main()
{
mint x;
ifx_int8_t num1, num2, num3;

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

if (x = ifx_int8cvasc(string1, strlen(string1), &num1))
{
printf("Error %d in converting string1 to INT8\n", x);
exit(1);
}
if (x = ifx_int8cvasc(string2, strlen(string2), &num2))
{
printf("Error %d in converting string2 to INT8\n", x);
exit(1);
}
if (x = ifx_int8cvasc(string3, strlen(string3), &num3))
{
printf("Error %d in converting string3 to INT8\n", x);
exit(1);
}
printf("\nConverting INT8 back to ASCII\n");
printf(" Executing: ifx_int8toasc(&num1, result, END - 1)");
if (x = ifx_int8toasc(&num1, result, END - 1))

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

printf("\tError %d in converting INT8 to string\n", x);
else
{
result[END - 1] = '\0'; /* null terminate */
printf("\n The value of the first INT8 is = %s\n", result);
}
printf("\nConverting second INT8 back to ASCII\n");
printf(" Executing: ifx_int8toasc(&num2, result, END - 1)");
if (x= ifx_int8toasc(&num2, result, END - 1))
printf("\tError %d in converting INT8 to string\n", x);
else
{
result[END - 1] = '\0'; /* null terminate */
printf("\n The value of the 2nd INT8 is = %s\n", result);
}

printf("\nConverting third INT8 back to ASCII\n");
printf(" Executing: ifx_int8toasc(&num3, result, END - 1)");
/* note that the decimal is truncated */

if (x= ifx_int8toasc(&num3, result, END - 1))
printf("\tError %d in converting INT8 to string\n", x);
else
{
result[END - 1] = '\0'; /* null terminate */
printf("\n The value of the 3rd INT8 is = %s\n", result);
}
printf("\nIFX_INT8tOASC Sample Program over.\n\n");
exit(0);
}
输出

IFX_INT8tOASC Sample ESQL Program running.

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



Converting INT8 back to ASCII
Executing: ifx_int8toasc(&num1, result, sizeof(result)-1)
The value of the first INT8 is = -12555444333786456

Converting second INT8 back to ASCII
Executing: ifx_int8toasc(&num2, result, sizeof(result)-1)
The value of the 2nd INT8 is = 480

Converting third INT8 back to ASCII
Executing: ifx_int8toasc(&num3, result, END)
The value of the 3rd INT8 is = 5

对象检查
表、索引、分区、约束等对象是数据库的核心存储对象。这些对象的核心信息监控和维
护是DBA 重要的日常工作。
查看表的详细信息
以管理员身份登录数据库,执行如下命令:
\d+ table_name;
查询表统计信息
以管理员身份登录数据库,执行如下命令:
SELECT * FROM pg_statistic;
查看索引的详细信息
以管理员身份登录数据库,执行如下命令:
\d+ index_name;

GBase 8c 管理员指南
南大通用数据技术股份有限公司
11
查询分区表信息
以管理员身份登录数据库,执行如下命令:
SELECT * FROM pg_partition;
收集统计信息

使用ANALYZE 语句,收集数据库相关的统计信息。
登录数据库,并执行命令:
ANALYZE;

使用VACUUM 语句,回收空间并更新统计信息。
登录数据库,并执行命令:
VACUUM;
查询约束信息
以管理员身份登录数据库,执行以下命令:
SELECT * FROM pg_constraint;

gnode 每个分片表在同步的时候都会分别产生sync_client 和sync_server 的日
志文件,这些日志文件存储在gnode/log/gbase/sync_log 目录下。如果每天有同步
执行,会随着时间逐渐增加,产生大量的同步日志,占用大量磁盘空间,影响lo
g 日志目录使用。现针对gnode/log/gbase/sync_log 目录下日志进行统一归档老化
处理:
归档:对目录内所有同步日志压缩转储,转储后将原log 文件删除。
老化:对同步日志压缩转储的归档文件,指定保留时长,超过保留时长的进行清
除。
说明:本节的sync_server 是同步子进程日志,按同步日志归档老化的配置进行归

GBase 8a MPP Cluster 产品手册
6 附录
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1629
档,存储在gnode/log/gbase/sync_log 下。说明:上一节日志按期归档中的syncser
ver.log 是同步主进程日志,默认每天归档一次,存储在gnode/log/gbase 下。本章
节的sync_server 是同步子进程日志,按同步日志归档老化的配置进行归档,存储
在gnode/log/gbase/sync_log 下。
同步日志归档老化的配置文件和默认值如下,用户可以根据自己的需求设置合适
的值:
1.
默认每两个小时执行一次归档老化程序
/var/spool/cron/gbase
0 */2 * * * /opt/192.168.146.40/gnode/server/bin/gc_syncpacklog.sh /opt/192.168.