Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 函数 » 函数类型

 

用户定义的函数

用户定义的函数(或 UDF)由程序或环境用户创建。用户定义的函数与内置在程序或环境中的函数相对应。

在 SQL Anywhere 中有两种创建用户定义函数的机制。您可以使用 SQL 语言编写函数,也可以使用 Java。

SQL 中用户定义的函数

您可以使用CREATE FUNCTION 语句(Web 服务)在 SQL 中实现自己的函数。CREATE FUNCTION 语句内的 RETURN 语句决定函数的数据类型。

创建了 SQL 用户定义的函数后,可以在任何使用相同数据类型的内置函数的地方使用该函数。

有关创建 SQL 函数的详细信息,请参见使用过程、触发器和批处理

Java 中用户定义的函数

Java 类提供了更加强大灵活的用于实现用户定义函数的方法,而且还有一个额外的优点:如果您愿意,可以将它们从数据库服务器移动到客户端应用程序。

已安装的 Java 类的任何类方法都可以作为用户定义的函数,在任何使用相同数据类型的内置函数的地方使用。

实例方法与类的特定实例相关,所以其行为与标准用户定义的函数不同。

有关创建 Java 类及类方法的详细信息,请参见创建类

确定是要创建用户定义的函数还是过程

函数与过程相似。确定是要创建函数还是过程取决于您要得到的返回结果,以及将要调用的对象。当确定是要创建 UDF 还是过程时,请考虑它们独特的特性,如下面所列。

函数:

  • 可以返回任意类型的单值,且允许使用 RETURNS 子句声明所返回的类型

  • 可以在能够使用表达式的大多数地方使用

  • 可用于只定义 IN 参数

过程:

  • 可以使用 INOUT 或 OUT 参数返回多个值

  • 可以返回结果集

  • 可以在查询的 FROM 子句中引用,或使用 CALL 语句,或使用 Transact-SQL EXECUTE 语句

  • 可以使用命名参数调用