Gbase8s数据库ALTER ROUTINE 语句

使用 ALTER ROUTINE 语句更改先前定义的用户定义的例程(UDR)的例程修饰符或路径名。该
语句是 SQL ANSI/ISO 标准的扩展。
用法
ALTER ROUTINE 语句使您可以修改先前定义的 UDR 以调整其性能,方法是修改该 UDR 如何执行的特征。您也可以添加或替换相关的 UDR ,它们为优化程序(可以提高性能)提供了其它选择。
此语句在您不知道 UDR 是用户定义的函数还是用户定义的过程时很有用。当您使用词语时,数据
库服务器会更改相应的用户定义的过程或用户定义的函数。
所有的修改在该 UDR 下一次调用时生效。
只有 UDR 所有者或 DBA 可以使用 ALTER ROUTINE 语句。
限制
如果该名称没有唯一地标识 UDR ,您必须为 parameter_type 输入一个或多个相应值。
当您使用词语时,UDR 的类型必须是确定的。您指定的 UDR 必须指定用户定义的函数或用户定义
的过程。如果存在以下任何一种情况,则数据库服务器会返回一条错误:
⚫ 您指定的名称(和参数)同时适用于用户定义的过程和用户定义的函数。
⚫ 您指定的特定名称同时适用于用户定义的函数和用户定义的过程。
引用修改的关键字
如果例程修饰符为 BOOLEAN 值,MODIFY 将该值设置为 T (相当于使用关键字 ADD 添加该例程修饰符)。
例如:下面这两个语句都更改了 func1 UDR ,这样它可以在可并行数据查询的环境中执行:
ALTER ROUTINE func1 WITH (MODIFY PARALLELIZABLE); 
ALTER ROUTINE func1 WITH (ADD PARALLELIZABLE);
更改例程修饰符示例
假设您有一个外部函数 func1 ,它设置为处理 NULL 值,并且每次调用的成本设置为 40 。以下
ALTER ROUTINE 语句通过删除处理 NULL 值的能力而调整该函数的设置,通过将每次调用的成
本更改为 20 而调整 func1 ,并指示该函数可以并行执行:
ALTER ROUTINE func1(CHAR, INT, BOOLEAN)
 WITH (
 DROP HANDLESNULLS, 
 MODIFY PERCALL_COST = 20, 
 ADD PARALLELIZABLE
 );
因为名称 func1 对数据库来说不是唯一的,所以指定了数据类型参数,这样例程特征符就是唯一
的。如果此函数在创建时指定了一个特定名称(例如,raise_sal),您可以使用下面的第一行标
识该函数:
ALTER SPECIFIC ROUTINE raise_sal;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值