返回首页

gbase数据、南大通用产品文档:GBase8s键入高速缓存信息

更新日期:2024年09月11日

当某些数据类型的对象将数据插入某些其它数据类型的列时,
GBase 8s JDBC Driver 会验证
提供的数据是否与数据库服务器通过调用SQLData.getSQLTypeName() 方法期望的数据匹
配。驱动程序向数据库服务器询问每次插入的类型信息。
在以下情况中会发生这种情况:

当一个 SQLData 对象将数据插入到一个不透明类型的列中时,
getSQLTypeName() 返回不透明类型的名称

当 Struct 或 SQLData 对象向行列插入数据时,getSQLTypeName() 返回已命名行的
名称

当一个 SQLData 对象将数据插入到 DISTINCT 类型列中时
在数据库 URL 中,可以设置环境变量 ENABLE_TYPE_CACHE=TRUE,以使驱动程序在
首次检索数据类型信息时缓存该数据类型信息。在向数据库服务器请求数据之前,驱动程
序会向缓存询问类型信息。

5464 gbase
20
0
845048
15168
5764 S

invdivinv() 函数将 interval 值除以另一 interval 值。

语法
mint invdivinv(i1, i2, num)
intrvl_t *i1, *i2;
double *num;
i1
指向被除的 interval 变量的指针。
i2
指向为除数的 interval 变量的指针。
num
指向为商的 double 值的指针。

用法
invdivinv() 函数将 i1 中的 interval 值除以 i2,并将结果存储在 num 中。该结果可
为正的或负的。

输入和输出限定符必须同时属于同一 interval 类:
或者 year to month 类,
或者 day
to fraction(5) 类。如果有必要,则在除法之前,invdivinv() 扩展 i2 中的 interval 值,来
匹配 i1 的限定符。

返回代码
0
除法成功。
<0
除法失败。
-1200
数值的值(大小)太大。
-1201

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

数值的值(大小)太小。
-1266
interval 值与该操作不兼容。
-1268
参数包含无效的 interval 限定符。

示例
demo 目录在文件 invdivinv.ec 中包含此样例程序。
/*
* invdivinv.ec *
The following program divides one interval value by another and displays the resulting
numeric value.
*/

#include

EXEC SQL include datetime;

main()
{
mint x;
char out_str[16];

EXEC SQL BEGIN DECLARE SECTION;
interval hour to minute hrtomin1, hrtomin2;
double res;
EXEC SQL END DECLARE SECTION;

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

printf("Interval #1 (hour to minute) = 75:27\n");
incvasc("75:27", &hrtomin1);
printf("Interval #2 (hour to minute) = 19:10\n");

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

incvasc("19:10", &hrtomin2);

printf("---------------------------------------------\n");
invdivinv(&hrtomin1, &hrtomin2, &res);
printf("Quotient (double) = %.1f\n", res);

printf("\nINVDIVINV Sample Program over.\n\n");
}
输出

INVDIVINV Sample ESQL Program running.

Interval #1 (hour to minute) = 75.27
Interval #2 (hour to minute) = 19:10
------------------------------------
Quotient (double) = 3.9
INVDIVINV Sample Program over.