SQL 函数限制
创建 SQL 函数之前或诊断与 SQL 函数的实现和使用有关的问题时,应注意 SQL 函数的限制。
SQL 函数存在以下限制:
- SQL 表函数不能包含编译型复合语句。
- 可以在分区数据库环境中调用已定义为 READS SQL 的编译型 SQL 标量函数,但前提是一定要在协调程序的代理程序中执行该标量函数。
- 已定义为 CONTAINS SQL 并在分区数据库环境中调用的编译型 SQL 标量函数无法预编译 SQL 语句,无法执行 CALL 语句,并且无法使用 SQL 编译器在处理之前会将其转换为完整 SQL 语句的任何构造。
- 根据定义,SQL 函数不能包含使用 WITH RETURN 子句定义的游标。
- 以下数据类型在编译型 SQL 函数中不受支持:结构化数据类型、LONG VARCHAR 数据类型和 LONG VARGRAPHIC 数据类型。 V10.1 中不支持 XML 数据类型。从 V10.1 FP1 中开始支持 XML 数据类型。
- 在此版本中,不支持在编译型 SQL 函数中使用 DECLARE TYPE 语句。
- 已编译的 SQL 函数(包括 PL/SQL 函数)不得包含对联合对象的引用。
- 用于修改 SQL 数据的编译型 SQL 函数(包括 PL/SQL 函数) 只能用作复合 SQL(编译型)语句内赋值语句右边的唯一元素。
- 如果表包含生成的列表达式,且在此表达式中,用户定义函数为已编译的复合 SQL,那么无法使用 LOAD 实用程序以将数据插入表。