对关联数组数据类型的限制

使用数组数据类型之前或诊断因为声明数组数据类型而导致的问题时,应注意数组数据类型的限制。

数组数据类型存在以下限制:
  • 只能在 SQL PL 上下文中声明、创建或引用关联数组。以下是可在其中使用此数据类型的 SQL PL 上下文列表:
    • 在模块中定义的 SQL 函数的参数。
    • 未在模块中定义但具有复合 SQL(编译型)语句作为函数体的 SQL 函数的参数。
    • 在模块中定义的 SQL 函数的返回类型。
    • 未在模块中定义但具有复合 SQL(编译型)语句作为函数体的 SQL 函数的返回类型。
    • SQL 过程的参数。
    • 在模块中定义的 SQL 函数中声明的局部变量。
    • 未在模块中定义但具有复合 SQL(编译型)语句作为函数体的 SQL 函数中声明的局部变量。
    • SQL 过程中声明的局部变量。
    • 复合 SQL(编译型)语句作为触发器体的触发器中声明的局部变量。
    • 复合 SQL(编译型)语句的 SQL 语句中的表达式。
    • SQL PL 上下文的 SQL 语句中的表达式。
    • 全局变量。
    在上述任一列出的 SQL PL 上下文之外使用无效。
  • 关联数组不能是表列类型。
  • 不允许 NULL 作为下标值。
  • 关联数组的最大大小受系统资源限制。
  • 关联数组不能成为 TRIM_ARRAY 函数的输入。关联数组值不能存储在表列中。
  • 支持 MAX_CARDINALITY 函数与关联数组配合使用,但该函数始终返回 null,原因是关联数组没有指定的最大大小。
  • 如果属于元素类型的任何行字段是数组或其他行类型,那么不支持在自主例程中使用带有行类型元素的数组。