用户定义的函数(或 UDF)由程序或环境用户创建。用户定义的函数与内置在程序或环境中的函数相对应。
在 SQL Anywhere 中有两种创建用户定义函数的机制。您可以使用 SQL 语言编写函数,也可以使用 Java。
您可以使用CREATE FUNCTION 语句(Web 服务)在 SQL 中实现自己的函数。CREATE FUNCTION 语句内的 RETURN 语句决定函数的数据类型。
创建了 SQL 用户定义的函数后,可以在任何使用相同数据类型的内置函数的地方使用该函数。
有关创建 SQL 函数的详细信息,请参见使用过程、触发器和批处理。
Java 类提供了更加强大灵活的用于实现用户定义函数的方法,而且还有一个额外的优点:如果您愿意,可以将它们从数据库服务器移动到客户端应用程序。
已安装的 Java 类的任何类方法都可以作为用户定义的函数,在任何使用相同数据类型的内置函数的地方使用。
实例方法与类的特定实例相关,所以其行为与标准用户定义的函数不同。
有关创建 Java 类及类方法的详细信息,请参见创建类。
函数与过程相似。确定是要创建函数还是过程取决于您要得到的返回结果,以及将要调用的对象。当确定是要创建 UDF 还是过程时,请考虑它们独特的特性,如下面所列。
函数:
可以返回任意类型的单值,且允许使用 RETURNS 子句声明所返回的类型
可以在能够使用表达式的大多数地方使用
可用于只定义 IN 参数
过程:
可以使用 INOUT 或 OUT 参数返回多个值
可以返回结果集
可以在查询的 FROM 子句中引用,或使用 CALL 语句,或使用 Transact-SQL EXECUTE 语句
可以使用命名参数调用
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |