返回首页

gbase数据、南大通用产品文档:GBase8c集合相关内部函数

更新日期:2024年09月11日

array_indexby
_delete
array_indexby
_length
array_integer_d
eleteidx
array_integer
_exists
array_intege
r_first
array_intege
r_last
array_integer_
next
array_integer_
prior
array_varchar_d
eleteidx
array_varchar
_exists
array_varch
ar_first
array_varch
ar_last
array_varchar
_next
array_varchar
_prior
-
-
-
-

时间触发器,在特定时间点触发相关sql 语句或存储过程,区别于事件触发器
(trigger)。
表 5-23 具体信息如下:
EVENT_CATALOG
时间触发器登记目录名
EVENT_SCHEMA
时间触发器所在的数据库
EVENT_NAME
时间触发器的名称
DEFINER
时间触发器的创建者
TIME_ZONE
时区
EVENT_BODY
时间触发器主体类别[SQL]
EVENT_DEFINITION
时间触发器定义,即定义代码
EVENT_TYPE
类型,[RECURRING| ...]重复执行及其他
EXECUTE_AT
为NULL

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 301
INTERVAL_VALUE
执行时间间隔
INTERVAL_FIELD
时间间隔的单位
SQL_MODE
sql 的执行模式
STARTS
开始执行时间
ENDS
执行结束时间
STATUS
时间触发器是否可用,[ENABLED|DISABLED]
ON_COMPLETION
执行完成后是否保留,不保留则drop,[PRESERVE|NOT
PRESERVE]
CREATED
创建时间
LAST_ALTERED
最后一次修改时间
LAST_EXECUTED
最后一次执行时间
EVENT_COMMENT
备注
EXECUTE_MODE

CHARACTER_SET_CLIENT
字符集编码
COLLATION_CONNECTION
连接的字符集对照方法
DATABASE_COLLATION
数据库的字符集对照方法

使用 LOAD 语句将数据从操作系统文件插入到现有的表或视图内。
语法
仅 DB-Access 支持 LOAD 语句。


GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 726
元素
描述
限制
语法
column
要从 filename 接收数据
值的列
请参阅 INSERT
INTO 子句。
标识符
delimiter
在装入文件的每一行内要
分隔数据值的字符。缺省
的定界符为管道 ( | ) 符
号。
请参阅 DELIMITER
子句。
引用字符串
filename
要读取的文件的路径和文
件名。缺省路径为当前目

请参阅 LOAD FROM
文件。
特定于操作系
统规则
synonym,
table,
view
要从 filename 向其中插
入数据的表的同义词
所指向的 Synonym
和 table 或 view
必须存在
数据库对象名
用法
此语句是对 SQL 的 ANSI/ISO 标准的扩展。您仅可随同 DB-Access 使用此语
句。
LOAD 语句向表追加新行。它不覆盖现有的数据。您添加的行不可与现有的行具
有相同的键。
要使用 LOAD 语句,您必须有对您想要插入数据的表的 Insert 权限。要了解关
于数据库级和表级权限的信息,请参阅 GRANT 语句。
您使用非缺省的语言环境的数据库中,如果 GL_DATETIME 环境变量有一非缺
省的设置,则在 LOAD 语句可将本地化的 DATETIME 值正确地插入到数据库
表,或插入到视图,或插入到 CREATE EXTERNAL TABLE 语句定义的对象内
之前,USE_DTENV 环境变量必须设置为 1。要了解更多关于
GL_DATETIME、GL_DATE、DBTIME 和 USE_DTENV 环境变量的信息,请
参考 GBase 8s GLS 用户指南。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 727
LOAD FROM 文件
LOAD FROM 包含要被装入到特定的表或视图内的数据。该装入文件的缺省路径
名为当前的目录。
您可使用 UNLOAD 语句创建的文件作为 LOAD FROM 文件。(要了解各种数
据类型在 UNLOAD TO 文件中如何展示的描述,请参阅 UNLOAD TO 文件。)
如果您在 INSERT INTO 子句中未包括列的列表,则该文件中的字段必须与为表
指定的列在数量、顺序和数据类型方面相匹配。
该文件的每一行必须有相同的字段数量。 您定义的字段长度必须小于或等于为相
应的列指定的长度。仅指定那些可转换为对应列的数据类型的值。下表指出数据
库服务器期望您如何在 LOAD FROM 文件中表示数据类型(当您使用缺省的语言环
境 U.S. English 时)。
数据的类型
输入格式

在定界符之间的一个或多个空字符。您可在不对应于字
符列的字段中包括前导空白。
BOOLEAN
t 或 T 表示 TRUE 值,f 或 F 表示 FALSE 值。
COLLECTIONS
集合必须有大括号括起其值,且用字段定界符分开每一
元素。要获取更多信息,请参阅 装入复杂数据类型。
DATE
下列格式的字符串: mm/dd/year。您必须声明月份为
两位数字。如果年份在 20 世纪中,则可使用两位数字
表示年份。(您可以 DBCENTURY 环境变量指定另一世
纪算法。)该值必须为一实际日期;例如,2 月 30 日
是非法的。如果您以 GL_DATE 或 DBDATE 环境变量指
定一种不同的日期格式,则可使用此格式。要获取更多
关于环境变量的信息,请参阅 GBase 8s SQL 参考指南
和 GBase 8s GLS 用户指南。
DECIMAL、MONEY、
FLOAT
可包括开始和/或结尾的货币符号以及千分位和十进制
分隔符的值。您的语言环境或 DBMONEY 环境变量可指
定货币格式。
NULL
在定界符之间没有任何符号

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 728
数据的类型
输入格式
ROW 类型(命名的或
未命名的)
ROW 类型必须以括号和分隔每一元素的字段定界符括起
其值。要获取更多信息,请参阅 装入复杂数据类型。
简单大对象(TEXT、
BYTE)
直接地从 LOAD TO 文件装入的 TEXT 和 BYTE 列。要
获取更多信息,请参阅 装入简单大对象。
智能大对象(CLOB、
BLOB)
从独立的操作系统文件装入的 CLOB 和 BLOB 列。在
LOAD FROM 文件中的 CLOB 或 BLOB 列的字段包含此独
立文件的名称。要获取更多信息,请参阅 装入智能大
对象。
时间
以 year-month-day hour:minute:second.fraction
格式的字符串。您不可使用 DATETIME 或 INTERVAL 值
的数据类型关键字或限定符。年份必须是 4 位数字,
其月份必须是 2 位数字。DBTIME 或 GL_DATETIME 环
境变量可指定其他终端用户格式。
用户定义的数据格式
(opaque 类型)
如果需要特殊的处理来将 LOAD FROM 文件中的数据复
制到该 opaque 类型的内部格式,则关联的 opaque 类
型必须定义了导入支持函数。导入二进制支持函数还可
能需要二进制格式的数据。LOAD FROM 文件数据的格式
必须是导入或导入二进制支持函数期望的格式。如果在
数据库中写入数据之前需要特殊处理,则关联的
opaque 类型必须有赋值支持函数。请参阅 装入
opaque 类型列。
要获取更多关于 DB* 环境变量的信息,请参考 GBase 8s SQL 参考指南。要获取
更多关于 GL* 环境变量的信息,请参考 GBase 8s GLS 用户指南。
如果您正在使用非缺省的语言环境,则 DATE、DATETIME、MONEY 的格式,
以及 LOAD FROM 文件中的数字列值必须与该语言环境支持的这些数据类型的
格式相兼容。要获取更多信息,请参阅 GBase 8s GLS 用户指南。
下列示例展示名为 new_custs 的输入文件的内容:
0|Jeffery|Padgett|Wheel Thrills|3450 El Camino|Suite 10|Palo Alto|CA|94306||
0|Linda|Lane|Palo Alto Bicycles|2344 University||Palo Alto|CA|94301|

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 729
(415)323-6440
此数据文件传递下列信息:

通过指定零(0)来表示串行字段

使用管道(|),缺省的定界符

将 NULL 值赋值给第一行的 phone 字段和第二行的 address2 字段
用两个之间不含任何符号的定界符表示 NULL 值。
下列语句将值从 new_custs 文件装入到 jason 拥有的 customer 表内:
LOAD FROM 'new_custs' INSERT INTO jason.customer;
如果您包括任何下列特殊字符作为字段的值的一部分,则必须在该字符之前使用
一反斜杠( \ )转义字符:

反斜杠

定界符

在 VARCHAR 或 NVARCHAR 列的值中任何位置的换行符

在 TEXT 值的值的末尾的换行符
请不要使用反斜杠字符( \ )作为与分隔符。它作为转义字符来通知 LOAD 语
句,下一个字符要解释为数据的一部分,而不是有特别的意义。
与字符列相对应的域可包含比允许该字段定义的字符数更多的字符。忽略多余的
字符。
如果您正在装入包含 VARCHAR 数据类型的文件,请注意下列信息:

如果您 LOAD 语句数据中,字符字段(包括 VARCHAR)不长于列大
小,则忽略多余的字符。

使用反斜杠( \ )来转义包括 VARCHAR 的所有字符字段中的嵌入的
定界符和反斜杠字符。

请不要在 LOAD FROM 文件中使用下列字符作为定界字符:数字(0 至
9)、字母 a 至 f 以及 A 至 F、反斜杠( \ )字符或换行 NEWLINE
(CTRL-J)符。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 730
装入简单大对象
数据库服务器直接地从 LOAD FROM 文件装入简单大对象(BYTE 和 TEXT
列)。在您装入 BYTE 和 TEXT 数据时,请记住下列限制:

您不可在 BYTE 字段中有开头和结尾的空白

使用反斜杠(\)转义 TEXT 字段中的精确定界符和反斜杠字符的特殊意
义。

正在装入到 BYTE 列内的数据必须为 ASCII 十六进制格式。BYTE 列
不可包含前导空白。

请不要在 LOAD FROM 文件中使用下列字符作为定界字符:数字(0 至
9)、字母 a 至 f 和 A 至 F、反斜杠(\)字符或 NEWLINE(CTRL-
J)字符。
为了在非缺省的语言环境中装入 TEXT 列,数据库服务器为该数据处理任何需要
的代码集转换。另请参阅 GBase 8s GLS 用户指南。
如果您正在装入包含 BYTE 或 TEXT 数据类型的文件,小于 10 KB 的对象临
时地存储在内存中。您可以 DBBLOBBUF 环境变量将该 10 KB 的设置调整为
更大的设置。大于缺省值或 DBBLOBBUF 设置的简单大对象存储在临时文件
中。要了解更多关于 DBBLOBBUF 环境变量的信息,请参阅 GBase 8s SQL 参
考指南。
装入智能大对象
数据库服务器从客户端计算机上独立的操作系统文件装入智能大对象(BLOB 和
CLOB 列)。要了解此文件的结构,请参阅 卸载智能大对象。
在 LOAD FROM 文件中,CLOB 或 BLOB 列值如下所示:
start_off,length,client_path
在此格式中,start_off 为该客户端文件内的智能大对象值的起始偏移量(以十六
进制计), length 为 BLOB 或 CLOB 值的长度(以十六进制计),client_path
为客户端文件的路径名。在这些值之间不可出现空格。
例如,要装入 /usr/apps/clob9ce7.318 文件中的 512 字节长且偏移量 256 的
CLOB 值,数据库服务器期望在 LOAD FROM 文件中出现如下的 CLOB 值:
|100,200,/usr/apps/clob9ce7.318|

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 731
如果要装入整个客户端文件,则在 LOAD FROM 文件内出现如下的 CLOB 或
BLOB 列值:
client_path
例如,要装入占据整个文件 /usr/apps/clob9ce7.318 的 CLOB 值,数据库服务
器期望在 LOAD FROM 文件中出现下列 CLOB 值:
|/usr/apps/clob9ce7.318|
在 DB-Access 中,在从 DB-Access 中执行的文件内 USING 子句有效。在交互
模式下,DB-Access 提示您输入密码,因此不使用 USING 关键字和
validation_var。
对于 CLOB 列,数据库服务器为该数据处理任何需要的代码集转换。另请参阅
GBase 8s GLS 用户指南。
装入复杂数据类型
在 LOAD FROM 文件中,复杂数据类型如下所示:

以适当的构造函数(SET、MULTISET 或 LIST)引入集合,且其元素括
在大括号({ })中,并以逗号分隔,如下:
constructor{val1 , val2 , ... }
例如,要将 SET 值 {1, 3, 4} 装入到其数据类型为 SET(INTEGER NOT
NULL) 的列内,则 LOAD FROM 文件的相应字段显示为:
|SET{1 , 3 , 4}|

以 ROW 构造函数引入行类型(命名的和未命名的),以圆括号括起其
字段,并以逗号分隔,如下:
ROW(val1 , val2 , ... )
例如,要装入 ROW 值 (1, 'abc'),LOAD FROM 文件的相应的字段显示
为:
|ROW(1 , abc)|

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 732
装入 opaque 类型列
当插入某些 opaque 数据类型时,它们需要特殊的处理。例如,如果 opaque 数据
类型包括占据空间的或多重表示的数据,则它可能提供如何存储该数据的选项:
是在内部的结构之中,对于大对象,或在智能大对象中。
通过调用名为 assign( ) 的用户定义的支持函数来完成此处理。当您在其行包含这
些 opaque 类型之一的表上执行 LOAD 语句时,数据库服务器自动地为该类型调
用 assign( ) 函数。assign( ) 函数可确定如何存储数据。要了解更多关于 assign( )
支持函数的信息,请参阅 GBase 8s 用户定义的例程和数据类型开发者指南 。
DELIMITER 子句
使用 DELIMITER 子句来指定分隔在输入文件中的行中的每一列中包含的数据的
定界符。 您可指定 (CTRL-I) 或空格(= ASCII 32)作为定界符号。您不可使用
下列项作为定界符号:

反斜杠(\)

NEWLINE 字符 (CTRL-J)

十六进制数(0 至 9、a 至 f、A 至 F)
如果您省略此子句,则数据库服务器检查 DBDELIMITER 环境变量。要获得关
于如何设置 DBDELIMITER 环境变量的信息,请参阅 GBase 8s SQL 参考指
南。
如果尚未设置 DBDELIMITER 环境变量,则缺省的定界符为管道(|)。
下列示例指定分号( ;)作为定界符号。该示例使用 Windows™ 文件命名约定。
LOAD FROM 'C:\data\loadfile' DELIMITER ';'
INSERT INTO orders;
INSERT INTO 子句
使用 INSERT INTO 子句来指定要将新数据装入其中的表、同义词或视图。
您必须指定列名称仅当下列条件之一为真:

您不是将数据装入所有列内。

输入文件与这些列的缺省顺序不匹配(当创建表时指定的顺序)。
INTO 子句不可指定 CREATE EXTERNAL TABLE 语句定义的表对象。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 733
下列示例标识 price 和 discount 列作为向其中添加数据的仅有的列。该示例使
用 Windows™ 文件命名约定。
LOAD FROM 'C:\tmp\prices' DELIMITER ','
INSERT INTO norman.worktab(price,discount)