返回首页

gbase数据、南大通用产品文档:GBase8sLIST(e) 数据类型

更新日期:2024年09月11日

LIST 数据类型是可存储相同 SQL 数据类型的有序非 NULL 元素的集合类型。
LIST 数据类型支持(但不需要)重复元素值。LIST 数据类型的元素具有顺序位置。
LIST 对象必须具有第一元素,可后跟第二元素,以此类推。
有关不支持顺序位置的无序集合数据类型,请参阅 MULTISET(e) 数据类型和
SET(e) 数据类型。有关可以存储一组包含不同 SQL 数据类型值的复杂数据类型,请参阅
ROW 数据类型。
可以将相同表的不超过 97 列声明为 LIST 数据类型。(同一限制适用于 SET 和

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 102 -
MULTISET 集合类型。)
缺省情况下,数据库服务器将新元素插入元素集末尾的插入 LIST 对象中。为了支持
LIST 的顺序位置,INSERT 语句提供了 AT 子句。此子句允许您指定要插入 LIST 元素值
的位置。有关更多信息,请参阅 GBase 8s SQL 指南:语法 中的 INSERT 语句。
LIST 对象中的所有元素都具有相同的元素类型。要指定元素类型,使用以下语法:
LIST(element_type NOT NULL)
LIST 的 element_type 可以是下列数据类型之一:
内置类型(SERIAL、SERIAL8、BIGSERIAL、BYTE 和 TEXT 除外)
DISTINCT 类型
未命名或命名 ROW 类型
其他集合类型
不透明类型
必须对 LIST 元素指定 NOT NULL 约束。其他约束对 LIST 列无效。有关 LIST 数据
类型语法的更多信息,请参阅 GBase 8s SQL 指南:语法。
可以在任何其他数据类型有效的地方使用 LIST。例如:
在用来搜索匹配的 LIST 值的 SELECT 语句 WHERE 子句中的 IN 谓词后面
用作确定 LIST 列中的元素数目的 CARDINALITY 或 mi_collection_card( ) 函
数的自变量
不能将 LIST 值用作聚集函数(例如,AVG、MAX、MIN 或 SUM)的自变量。
与使用其他集合数据类型一样,必须在数据类型声明中使用括号 ( ( ) ) 来为 LIST
数据类型的元素集定界:
CREATE FUNCTION update_nums( list1 LIST (ROW (a VARCHAR(10),
b VARCHAR(10),
c INT) NOT NULL ));但是,在
包含文字 LIST 值的 SQL 表达式中,必须使用花括号 ({ }) 来对 LIST 对象的元素集定
界,如以下示例中所示。
如果两个 LIST 值具有相同顺序的相同元素,那么它们相等。以下是 LIST 对象的两
个示例,但是它们的值不相等。:
LIST{"blue", "green", "yellow"}
LIST{"yellow", "blue", "green"}
上面的表达式不相等,原因是值顺序不同。要使其相同,第二条语句必须为:
LIST{"blue", "green", "yellow"}

函数说明
返回从hour、minute、second 计算得到的时间值。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
805
示例
示例1:返回“12,15,30”对应的时分秒的值。
gbase> SELECT MAKETIME(12,15,30) FROM dual;
+--------------------+
| MAKETIME(12,15,30) |
+--------------------+
| 12:15:30
|
+--------------------+
1 row in set

ifx_lo_unlock() 函数允许您解锁由 ifx_lo_lock() 锁定了的智能大对象中的一些字节。


语法
mint ifx_lo_unlock(lofd, offset, whence, range)
mint lofd;
int8 *offset;
mint whence;

int8 *range;
LO_fd
表示要在其中解锁一些字节的智能大对象的 LO 文件描述符。
offset

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 807 -
指向在智能大对象之内指定开始解锁处的偏移量的 8 字节整数(INT8)的指针。
whence
指定从哪一点计算偏移量的整数常量:智能大对象的开头、智能大对象之内的当前位
置,或智能大对象的末尾。
range
指向指定要解锁的字节数的 8 位整数(INT8)的指针。
用法

对于由 LO_fd 指定的智能大对象,
ifx_lo_unlock() 函数解锁由 nbytes 指定的字节数,
从由 offset 和 whence 指定的偏移量处开始。在调用 ifx_lo_unlock() 之前,您必须通过调
用 ifx_lo_create() 来创建新的智能大对象,
或通过调用 ifx_lo_open() 来打开现有的智能大
对象,来取得有效的 LO 文件描述符。

返回代码
0
函数成功。
< 0
函数不成功。返回值为 sqlcode,其为 GBase 8s 错误消息的数目。