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 参考 » 系统对象 » 系统过程 » 按字母顺排序的系统过程列表

 

sa_make_object 系统过程

请确保在执行 ALTER 语句前存在对象的框架实例。

语法
sa_make_object( 
  objtype,
  objname
  [, owner
  [, tabname ]  ] 
)
objtype:
'procedure' 
| 'function' 
| 'view' 
| 'trigger' 
| 'service'
| 'event'
参数
  • objtype   使用此 CHAR(30) 参数指定所创建对象的类型。如果 objtype 为 'trigger',此参数指定要在其上创建触发器的表的所有者。

  • objname   使用此 CHAR(128) 参数指定要创建的对象的名称。

  • owner   使用此可选的 CHAR(128) 参数指定要创建的对象的所有者。缺省值为 CURRENT USER。

  • tabname   仅在 objtype 为 'trigger' 时才需要此 CHAR(128) 参数,在此情况下,该参数用于指定要在其上创建触发器的表的名称。

注释

在那些需要重复运行以创建或修改数据库模式的脚本或命令文件中,此过程很有用。这类脚本中的一个共同问题是:当这些脚本在第一次运行时,必须执行一个 CREATE 语句,以后运行时必须执行 ALTER 语句。使用此过程,就不必通过查询系统视图来查看对象是否存在。

若要使用此过程,请在此过程后使用一个包含整个对象定义的 ALTER 语句。

权限

创建或修改数据库对象需要有资源权限

副作用

自动提交

另请参见
示例

以下语句可确保创建框架过程定义,可以定义过程,并可授予对其的权限。可以对数据库重复运行包含这些指令的命令文件而不会出现任何错误。

CALL sa_make_object( 'procedure','myproc' );
ALTER PROCEDURE myproc( in p1 INT, in p2 CHAR(30) )
BEGIN
    // ...
END;
GRANT EXECUTE ON myproc TO public;

以下示例使用 sa_make_object 系统过程添加一个框架 Web 服务。

CALL sa_make_object( 'service','my_web_service' );