在数据操纵语句中 SPL 例程的限制

如果在非数据操纵语言(DML)语句(即 EXECUTE FUNCTION 或 EXECUTE PROCEDURE)的 SQL 语句中调用 SPL 例程,那么 SPL 例程可以执行未列在 SQL 语句在 SPL 语句块中有效一节中的任何语句。

如果 SPL 例程作为 DML 语句(即 INSERT 、UPDATE 、DELETE 、MERGE 或 SELECT 语句)的一部分调用,那么例程不能执行下面列表中的任何 SQL 语句: 如果 SPL 例程的调用上下文是试图执行以上列出的任何 SQL 语句的 DML 语句,则 GBase 8s 发出错误 -675。

这些限制不适用于触发器调用的 SPL 例程,因为在这些情况下 SPL 例程不是由 DML 语句调用,因而可以包含任意未列在 SQL 语句在 SPL 语句块中有效中的 SQL 语句,例如 UPDATE 、INSERT 和 DELETE。