返回首页

gbase数据、南大通用产品文档:GBase8s浮点数据类型

更新日期:2024年09月11日

数据库服务器支持浮点值的以下数据类型。

SQL 浮点数据类型
ESQL/C 或 C 语言类型
值的范围
SMALLFLOAT, REAL
float
单精度值可达到 9 位有效数字
FLOAT, DOUBLE
PRECISION
double
双精度值可达到 17 位有效数字
DECIMAL(p)
decimal
绝对值的范围 10-130 - 10124
声明浮点主机变量
当使用 C float 数据类型时(对于 SMALLFLOAT 值),请注意大多数 C 编译程序
将 float 作为 double 数据类型传递给函数。如果您声明函数参数为 float,可能接收一个
不正确的结果。例如:在以下摘录中,:hostvar 可能在 tab1 中产生一个不正确的值,这
取决于当您的程序将它作为参数传递时,C 编译程序如何处理 float 数据类型。

main()
{
double dbl_val;

EXEC SQL connect to 'mydb';
ins_tab(dbl_val);


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


}

ins_tab(hostvar)
EXEC SQL BEGIN DECLARE SECTION;
PARAMETER double hostvar;
EXEC SQL END DECLARE SECTION;
{
EXEC SQL insert into tab1 values (:hostvar, ...);
}
隐式数据转换
当 GBase 8s ESQL/C 程序将浮点列值提取到字符主机变量
(char 、
fixchar 、
varchar
或 string)中时,它仅包含可以适合字符缓冲区的 decimal 数字数。如果主机变量对于浮
点数的完整精度来说太小,
则 GBase 8s ESQL/C 将该数字舍入到主机变量可以容纳的精度。


在以下的代码段中,GBase 8s ESQL/C 程序从名为 principal 的 FLOAT 列中将值

GLOBAL_BGWRITER_STAT 视图显示各节点关于后端写进程活动的统计信息。
名称
类型
描述
node_name
name
数据库进程名称。
checkpoints_timed
bigint
执行的定期检查点数。
checkpoints_req
bigint
执行的需求检查点数。
checkpoint_write_time
double precision
花费在检查点处理部分的时间总量,
其中文件被写入到磁盘,以毫秒为单
位。
checkpoint_sync_time
double precision
花费在检查点处理部分的时间总量,
其中文件被同步到磁盘,以毫秒为单
位。
buffers_checkpoint
bigint
检查点写缓冲区数量。
buffers_clean
bigint
后端写进程写缓冲区数量。
maxwritten_clean
bigint
后端写进程停止清理扫描时间数,因
为它写了太多缓冲区。
buffers_backend
bigint
通过后端直接写缓冲区数。
buffers_backend_fsync
bigint
后端不得不执行自己的fsync 调用的
时间数(通常后端写进程处理这些即
使后端确实自己写)。
buffers_alloc
bigint
分配的缓冲区数量。
stats_reset
timestamp with time
zone
这些统计被重置的时间。

取值:[0|1]
默认值:0
说明:表名大小写控制
0:oracle 默认对象名称都为大写,创建表时,表名不加双引号,自动转为大写。
1:表名大小写敏感。不做大小写转换, 与SQL 书写时一致。
修改方式:
可使用set 语句修改值也可在配置文件中修改值。
适用于session、
global
范围均可。