VARIANT 和 NOT VARIANT

对 C 用户定义的函数和 SPL 函数使用 VARIANT 和 NOT VARIANT 修饰符。如果以相同参数调用时返回不同结果或者修改数据库或变量状态的函数是可变的。例如,返回当前日期和时间的函数就是一个可变函数。

缺省情况下,用户定义函数是可变的。如果在创建或修改用户定义函数时指定 NOT VARIANT ,则该函数不能包含任何 SQL 语句。

如果用户定义函数是不可变的,那么数据库服务器可以存储成本高的函数的返回值。只能对不变函数创建函数型索引。有关函数型索引的更多信息,请参阅 CREATE INDEX 语句

在 ESQL/C 中,可以在这个子句或 EXTERNAL 例程引用中指定 VARIANT 或 NOT VARIANT。有关更多信息,请参阅外部例程引用。如果在两处都指定修饰符,必须在两个子句中都使用同一修饰符。