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