返回首页

gbase数据、南大通用产品文档:GBase8s总结

更新日期:2024年09月11日

SPL 例程为提高您的数据库处理效率提供许多机会,
包括提升数据库性能,
简化应用程序,
以及限制或监视对数据的访问。
您还可使用 SPL 例程来处理扩展的数据类型,
诸如集合类
型、row 类型、opaque 类型和 distinct 类型。要了解 SPL 语句的语法图,请参阅《GBase
8s SQL 指南:语法》。



GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 337 -
13 创建和使用触发器
本章描述 CREATE TRIGGER 语句的每个组成部分的用途,说明触发器的一些用法,并描
述将 SPL 例程用作触发器的优点。
此外,本章还描述可在视图上定义的 INSTEAD OF 触发器。
SQL 触发器是驻留在数据库中的一种机制。
具有使用许可权的任何用户都可以使用它。
SQL
触发器指定当数据操纵语言
(DML)
操作
(INSERT 、
SELECT 、
DELETE 或 UPDATE 语
句)时,数据库服务器应自动执行一个或多个附加操作。对于在视图上定义的触发器,视
图基本表上的触发操替换触发事件。
对于表或视图上的触发器,
触发操作可以是 INSERT 、
DELETE 、UPDATE 、EXECUTE PROCEDURE 或 EXECUTE FUNCTION 语句。
GBase 8s 还支持用 C 或 Java™ 编写的用户定义的例程作为触发操作。
有关如何撰写 C UDR 以获取有关触发器事件的元数据信息,请参阅《GBase 8s DataBlade
API 程序员指南》。


GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
682
概述
对于操作字符串位置的函数,第一个位置被标记为1。

数据库服务器提供了四个 SQL 函数,
您可以从 SQL 语句中调用这些函数来导入和导出智
能大对象。下表显示智能大对象函数。
表 1. 智能大对象的 SQL 函数
函数名称
用途
FILETOBLOB()
将文件复制到 BLOB 列中
FILETOCLOB()
将文件复制到 CLOB 列中
LOCOPY()
将 BLOB 或 CLOB 数据复制的另一个 BLOB 或 CLOB 列中
LOTOFILE()
将 BLOB 或 CLOB 数据复制到文件中
有关智能大对象函数的详细信息和语法,请参阅《GBase 8s SQL 指南:语法》中的表达式
段。
可以在 SELECT UPDATE 和 INSERT 语句中使用该表显示的任何函数。有关如何在
INSERT 和 UPDATE 语句中使用上述函数的示例,请参阅修改数据。
假设您创建 inmate 和 fbi_list 表,如下图所示。
图: 创建 inmate 和 fbi_list 表
CREATE TABLE inmate
(
id_num INT,

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 96 -

picture BLOB,
felony CLOB
);

CREATE TABLE fbi_list
(
id INTEGER,
mugshot BLOB
) PUT mugshot IN (sbspace1);
以下 SELECT 语句使用 LOTOFILE() 函数将数据从 felony 列复制到位于客户机上
的 felon_322.txt 文件中:
SELECT id_num, LOTOFILE(felony, 'felon_322.txt', 'client')
FROM inmate
WHERE id = 322;
LOTOFILE() 的第一个参数指定将从中导出数据的列的名称。
第二个参数指定要将数据复制
到其中的文件的名称。第三个参数指定目标文件是位于客户端计算机('client')或服务器计
算机('server')上。
根据源文件是驻留在客户机还是服务器计算机上,下列规则可用来指定函数参数中文件名
的路径:
如果源文件驻留在服务器计算机上,那么必须指定文件的全路径名(不是与当前工作目录
相对的路径名)。
如果源文件驻留在客户端计算机上,那么可以指定文件的全路径名或相对路径名。