SPL 函数

SPL 函数是用 SPL 编写的 UDR ,可返回一个或多个值。要编写并注册 SPL 函数,请使用 CREATE FUNCTION 语句。在 CREATE FUNCTION 和 END FUNCTION 关键字之间嵌入适当的 SQL 和 SPL 语句。还可以将 DOCUMENT 和 WITH FILE IN 选项放在该函数后面。

分析 SPL 函数,(尽可能)优化函数f,并以可执行文件的形式存储在系统目录表中。SPL 函数的主体存储在 sysprocbody 系统目录表中。关于该函数的其它信息存储在其它系统目录表中,包括 sysproceduressysprocplansysprocauth。有关这些系统目录表的更多信息,请参阅 GBase 8s SQL 参考指南

END FUNCTION 关键字在每个 SPL 函数中是必需的,并且在紧邻语句块之前的子句后面要加上分号(;)。以下代码示例创建了 SPL 函数:
CREATE FUNCTION update_by_pct ( pct INT, pid CHAR(10))
        RETURNING INT;
        UPDATE inventory SET price = price + price * (pct/100)
        WHERE part_id = pid;
        return (select price from inventory where part_id = pid);
        END FUNCTION
        DOCUMENT "USAGE: Update a price by a percentage",
        "Enter an integer percentage from 1 - 100",
        "and a part id number"
        WITH LISTING IN '/tmp/warn_file';

有关如何编写 SPL 函数的更多信息,请参阅 GBase 8s SQL 教程指南 中关于 SPL 的章节。

另见 SPL 例程中的事务 一节。

您可以在 SPL 函数中包含有效的 SQL 或 SPL 语言语句。但是,请参阅 其它语法段 中的以下各节,这些节描述了 SPL 例程中 SQL 和 SPL 语句上的限制:SPL 语句的子集在语句块中有效SQL 语句在 SPL 语句块中有效在数据操纵语句中 SPL 例程的限制