WEB开发网
开发学院数据库DB2 DB2 9.5 SQL Procedure Developer 认证考试 735 准... 阅读

DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第3部分

 2010-02-18 15:01:14 来源:WEB开发网   
核心提示:其中:FunctionName指定要创建的有源函数的名称,ParameterName指定一个或多个函数参数的名称,DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第3部分(3),InputDataType指定ParameterName 所识别的参数所需的数据类型,OutputDa

其中:

FunctionName指定要创建的有源函数的名称。

ParameterName指定一个或多个函数参数的名称。

InputDataType指定ParameterName 所识别的参数所需的数据类型。

OutputDataType指定函数返回的数据的类型。

SpecificName指定分配给这个UDF的特定名称。这个名称可以用来引用或删除函数;但是,不能用来调用函数。

SourceFunction指定用来创建这个有源函数的现有函数。

DataType指定现有函数的每个参数期望接收的数据类型。

在使用这种形式的CREATE FUNCTION语句时,如果指定了 SPECIFIC子句,就会给创建的UDF 分配一个惟一的名称。创建函数之后,可以通过在特殊形式的DROP SQL语句 (DROP SPECIFIC FUNCTION [SpecificName]) 中引用这个特定名称来删除函数。但是,如果不给 UDF 分配特定名称,那么必须在DROP FUNCTION语句中提供函数名和函数的签名(即放在圆括号中的所有函数参数的数据类型列表)。

如果指定AS TEMPLATE子句,那么会生成一个函数模板。函数模板是一个不完整的函数,它定义了要返回的数据类型,但是不包含可执行代码。在联邦系统中,函数模板被映射到一个数据源(例如Oracle或SQL Server)函数,这样就可以从联邦数据库调用数据源函数。只能在指定为联邦服务器的数据库服务器上注册函数模板。

因此,如果基于内置数据类型INTEGER 创建了一个名为YEAR的数据类型,希望创建一个有源函数AVG(),它应该接收并返回 YEAR值,而且它基于内置函数AVG()(此函数接收并返回 INTEGER值),那么可以执行下面的CREATE FUNCTION语句:

CREATE FUNCTION AVG(YEAR) RETURNS YEAR
  SOURCE SYSIBM.AVG(INTEGER)

SQL函数

SQL函数是只使用过程式 SQL语句构造的UDF。SQL函数可以是标量函数,也可以返回一行或整个表。

用来创建SQL函数的CREATE FUNCTION语句形式的基本语法如下:

清单 2. 用来创建SQL函数的CREATE FUNCTION语句

CREATE FUNCTION [FunctionName] ( <<[ParameterName]> [InputDataType] ,...> )
  RETURNS [[OutputDataType] |
    TABLE ( [ColumnName] [ColumnDataType] ,... ) |
    ROW ( [ColumnName] [ColumnDataType] ,... )]
  <SPECIFIC [SpecificName]>
  <LANGUAGE SQL>
  <DETERMINISTIC | NOT DETERMINISTIC>
  <EXTERNAL ACTION | NO EXTERNAL ACTION>
  <CONTAINS SQL | READS SQL DATA | MODIFIES SQL DATA>
  <STATIC DISPATCH>
  <CALLED ON NULL INPUT>
  [SQLStatements] | RETURN [ReturnStatement]

其中:

FunctionName指定要创建的SQL函数的名称。

ParameterName指定一个或多个函数参数的名称。

InputDataType指定ParameterName 所识别的参数所需的数据类型。

OutputDataType指定函数返回的数据的类型。

ColumnName指定函数返回的一列或多列的名称(如果此函数返回表或行的话)。

ColumnDataType指定ColumnName 所识别的列返回的数据类型。

SpecificName指定分配给这个UDF的特定名称。这个名称可以用来引用或删除函数;但是,不能用来调用函数。

SQLStatements指定在调用函数时执行的一个或多个SQL语句。这些语句组合成一个动态复合SQL语句。

ReturnStatement指定用于返回调用函数的应用程序的RETURN SQL语句。(如果 SQL函数体由动态复合语句组成,那么它必须包含至少一个RETURN语句;在调用函数时,必须执行一个RETURN语句。如果函数是表函数或行函数,那么只能包含一个RETURN语句,而且此语句必须是使用的最后一个语句)。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:DB SQL Procedure

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接