返回首页

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

更新日期:2024年09月11日

invmuldbl() 函数将 interval 值乘以数值的值。

语法
mint invmuldbl(iv, num, ov)
intrvl_t *iv;
double num;
intrvl_t *ov;
iv
指向要相乘的 interval 变量的指针。
num
数值的 double 值。
ov
指向带有有效的限定符的 interval 变量的指针。

用法
invmuldbl() 函数将 iv 中的 interval 值乘以 num,并将结果存储在 ov 中。num 中
的值可正可负。

输入和输出限定符都必须属于同一 interval 类:
或者 year to month 类,
或者 day to
fraction(5) 类。
如果 ov 的限定符不同于 iv 的限定符
(但属于同于类)

则 invmuldbl() 扩
展该结果(如 invextend() 函数定义的那样)。


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 845 -
返回代码
0
乘法成功。
<0
乘法失败。
-1200
数值的值(大小)太大。
-1201
数值的值(大小)太小。
-1266
interval 值与该操作不兼容。
-1268
参数包含无效的 interval 限定符。

示例
demo 目录的文件 invmuldbl.ec 中包含此样例程序。
该示例说明如何将 interval 值与
数值的值相乘。第二个相乘说明当输入与输出限定符不同时 interval 乘法的结果。
/*
* invmuldbl.ec *

The following program multiplies an INTERVAL type variable by a numeric value and
stores the result in an INTERVAL variable. The operation is done twice, using INTERVALs with
different qualifiers to store the result.
*/

#include

EXEC SQL include datetime;

main()
{
char out_str[16];


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 846 -
EXEC SQL BEGIN DECLARE SECTION;
interval hour to minute hrtomin1;
interval hour to minute hrtomin2;
interval day to second daytosec;
EXEC SQL END DECLARE SECTION;

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


/* input is 25 hours, and 49 minutes */
printf("Interval (hour to minute) = 25:49\n");
incvasc("25:49", &hrtomin1);
printf("Multiplier (double) = 3.0\n");
printf("--------------------------------------\n");

/* Convert the internal format to ascii for displaying */
invmuldbl(&hrtomin1, (double) 3.0, &hrtomin2);
intoasc(&hrtomin2, out_str);
printf("Product #1 (hour to minute)= '%s'\n", out_str);

/* Convert the internal format to ascii for displaying */
invmuldbl(&hrtomin1, (double) 3.0, &daytosec);
intoasc(&daytosec, out_str);
printf("Product #2 (day to second)='%s'\n", out_str);

printf("\nINVMULDBL Sample Program over.\n\n");
}
输出
INVMULDBL Sample ESQL Program running.

Interval (hour to minute) = 25:49
Multiplier (double) = 3.0
---------------------------------------------

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 847 -
Product #1 (hour to minute) = ' 77:27'
Product #2 (day to second) = ' 3 05:27:00'
INVMULDBL Sample Program over.

量的 load 和 unload 语句
在非缺省语言环境中,装入或卸载 DATETIME 值的操作可能会受
GL_DATETIME 和 USE_DTENV 环境变量设置的影响。
如果数据库使用非缺省的语言环境并且 GL_DATETIME 环境变量有非
缺省的设置,那么必须先将 USE_DTENV 环境变量设置为值 1,然后才能正
确处理本地化的 DATETIME 值,方法是使用 LOAD 或 UNLOAD 语句,或
者使用 dbimport 或 dbexport 实用程序,或者在 DML 操作中对 CREATE
EXTERNAL TABLE 语句定义的对象进行处理。

功能说明
列出选定数据库中指定表的索引。
语法格式
SHOW INDEX FROM { [vc_name.][database_name.]table_name| table_name
[FROM [vc_name.]database_name]};
表5- 118 参数说明
参数名称


FULL
关键字FULL 产生的输出,
包括用户对每个列所拥有的权限。
FULL 也显示所有列注释信息。
vc_name
vc 名,可选项。
database_name
数据库名,可选项。
table_name
表名
示例
示例1:列出demo 数据库中指定表的索引。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1109
示例中所用的表及数据:
USE vc1.demo;
CREATE TABLE t_index(a int, b varchar(10));
CREATE INDEX idx_a ON t_index(a) USING HASH GLOBAL;
使用vc_name.database_name.table_name 格式:
gbase> SHOW INDEX FROM vc1.demo.t_index\G
*************************** 1. row ***************************
Table: t_index
Non_unique: 1
Key_name: idx_a
Seq_in_index: 1
Column_name: a
Collation: NULL
Cardinality: NULL
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: GLOBAL HASH
Comment:
1 row in set (Elapsed: 00:00:00.00)
使用FROM table_name FROM vc_name.database_name.格式:
gbase>
SHOW INDEX from t_index FROM vc1.demo\G
*************************** 1. row ***************************
Table: t_index
Non_unique: 1
Key_name: idx_a
Seq_in_index: 1
Column_name: a
Collation: NULL
Cardinality: NULL
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: GLOBAL HASH
Comment:
1 row in set (Elapsed: 00:00:00.00)

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1110