此语句用于修改函数。必须在 ALTER FUNCTION 语句中包括整个新函数。
ALTER FUNCTION [ owner.]function-name function-definition
function-definition : CREATE FUNCTION syntax
ALTER FUNCTION [ owner.]function-name SET HIDDEN
ALTER FUNCTION [ owner.]function-name RECOMPILE
语法 1 除第一个单词不同外,ALTER FUNCTION 语句的语法与 CREATE FUNCTION 语句的语法相同。两种语法形式的 CREATE FUNCTION 语句都可以这样更改。
系统保留函数的现有权限,因此不必重新分配。如果执行了 DROP FUNCTION 和 CREATE FUNCTION,则必须重新分配执行权限。
语法 2 使用 SET HIDDEN 对关联函数的定义进行模糊处理,使之不可读。可以卸载此函数,然后将其重装到其它数据库中。
此设置是不可逆的。如果再次需要原始源,则必须将它保存在数据库之外。
如果使用 SET HIDDEN,则使用调试程序进行调试将不会显示函数定义,也无法通过过程分析获得函数定义。
语法 3 使用 RECOMPILE 语法重新编译用户定义的 SQL 函数。当重新编译函数时,存储在目录中的定义被重新分析,其语法也被验证。重新编译没有更改函数的保留源。重新编译函数时,由 SET HIDDEN 子句模糊处理过的定义仍是模糊形式,仍不可读取。
必须是函数的所有者或者具有 DBA 权限。
自动提交。
SQL/2003 服务商扩充。
在此示例中,创建并更改了 MyFunction。SET HIDDEN 子句对函数定义进行模糊处理,使其不可读。
CREATE FUNCTION MyFunction( firstname CHAR(30), lastname CHAR(30) ) RETURNS CHAR(61) BEGIN DECLARE name CHAR(61); SET name = firstname || ' ' || lastname; RETURN (name); ALTER FUNCTION MyFunction SET HIDDEN; END; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |