Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

ALTER FUNCTION 语句

此语句用于修改函数。必须在 ALTER FUNCTION 语句中包括整个新函数。

语法 1
ALTER FUNCTION [ owner.]function-name function-definition
function-definition : CREATE FUNCTION syntax
语法 2
ALTER FUNCTION [ owner.]function-name 
SET HIDDEN
语法 3
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;