DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第3部分
2010-02-18 15:01:14 来源:WEB开发网其中:
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语句,而且此语句必须是使用的最后一个语句)。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接