南大通用GBase8s 常用SQL语句(132)

    1. EXECUTE FUNCTION 语句

使用 EXECUTE FUNCTION 语句来调用用户定义的函数或返回值的内建例程。

该语句是对 SQL 的 ANSI/ISO 标准的扩展。

语法

 

元素

描述

限制

语法

function 

要执行的用户定义函数的名称

必须在数据库中注册

数据库对象名 

SPL_var 

包含要执行的 SPL 例程名称的变量

必须为包含现有 SPL 函数的非 NULL 名称的 CHAR、VARCHAR、NCHAR 或 NVARCHAR 数据类型

标识符 

用法

EXECUTE FUNCTION 语句以参数调用用户定义函数(UDF),并指定结果要返回到哪里。

外部的 C 或 Java™ 语言函数仅返回一个值。

SPL 函数可返回一个或多个值。

您不可使用 EXECUTE FUNCTION 语句来调用不返回值的任何类型的用户定义过程。而是使用 EXECUTE PROCEDURE 或 EXECUTE ROUTINE 语句来执行过程。

您必须对用户定义函数拥有 Execute 权限。

要获取更多信息,请参阅 GRANT 语句。

在支持隐式事务的符合 ANSI/ISO 的数据库中,在缺省情况下,EXECUTE FUNCTION 不开启新的事务。然而,被调用函数内的 SQL 语句可开启新的事务。

否定函数及其伴随函数

如果返回 BOOLEAN 值的 UDF 有伴随函数,则执行该函数的任何用户必须对该函数及其伴随函数都有 Execute 权限。例如,如果函数有否定函数,则执行该函数的任何用户都必须对该函数及其否定函数 都有 Execute 权限。此外,伴随函数必须与其否定函数有相同的所有者。

要获取关于如何将 UDF 指定为其否定函数的伴随函数的信息,请参阅 NEGATOR。

EXECUTE FUNCTION 语句的工作机制

对于要随同 EXECUTE FUNCTION 语句执行的用户定义的函数(UDF),必须存在下列条件:

  1. 限定的函数名称或函数特征符(带有参数列表的函数名称),在名称空间或数据库内必须是唯一的。
  2. 在当前数据库中,该函数必须存在。

如果 EXECUTE FUNCTION 指定的参数少于用户自定义的函数预期,则未指定的参数称为丢失的。将丢失的参数初始化为它们相应的缺省值,如果已经定义了这些缺省值。在 例程参数列表 中描述为参数指定缺省值的语法。

在下列条件下,EXECUTE FUNCTION 返回错误:

  1. EXECUTE FUNCTION 指定的参数多于 UDF 预期。
  2. 丢失一个或多个参数,且没有缺省值。
  3. 完全限定的函数名称或函数特征符不是唯一的。
  4. 找不到指定名称的函数或您指定的特征符。
  5. EXECUTE FUNCTION 尝试调用用户定义的过程。

如果在数据库内 function 名称不唯一,则必须指定足够的 parameter_type 信息来明确该名称。要获取更多关于调用函数时如何指定参数的信息,请参阅 参数 一节。

在一些 DDL 语句中,外部 UDR 的 specific name 有效,但在调用该函数的上下文中无效。

如果 GBase 8s 不可解析模糊的函数名称,该名称的特征符不同于仅在未命名 ROW 类型参数中的另一例程的特征符,则返回错误。(当定义该模糊函数时,数据库服务器不可预料到该错误。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值