使用 CREATE PROCEDURE FROM 语句存取用户定义的过程。CREATE PROCEDURE 语句的实际文本驻留在单独的文件中。
该语句是 SQL ANSI/ISO 标准的扩展。您可以在 GBase 8s ESQL/C 中使用此语句。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
file | 包含 CREATE PROCEDURE 语句的全文本的文件的路径名和文件名。缺省路径名为当前目录。 | 必须存在,并且仅可包含一个 CREATE PROCEDURE 语句。另见 持有文件的缺省目录 | 特定于操作系统 |
file_var | 包含文件规范的程序变量的名称 | 必须是字符数据类型;其内容有与 file 相同的限制 | 特定于语言 |
不能直接在 GBase 8s ESQL/C 程序中创建用户定义的过程。这就是说,程序不能包含 CREATE PROCEDURE 语句。
要在 ESQL/C 程序中使用用户定义的过程:
文件仅能包含一个 CREATE PROCEDURE 语句。
CREATE PROCEDURE raise_prices( per_cent INT ) UPDATE stock -- increase by percentage; SET unit_price = unit_price + ( unit_price * (per_cent / 100) ); END PROCEDURE;
EXEC SQL create procedure from 'raise_pr.sql';
如果您不确定文件中的 UDR 是否返回值,请使用 CREATE ROUTINE FROM 语句。
当 IFX_EXTEND_ROLE 配置参数设置成 ON 时,只有拥有内置 EXTEND 角色的用户才可以创建外部例程。
当 IFX_EXTEND_ROLE 配置参数设置成 1 或 ON 时,只有由数据库服务器管理员(DBSA)授予内置 EXTEND 角色的用户才能创建外部例程。此外,您对要注册例程所在的数据库必须至少持有的 Resource 存取权限。还必须对编写例程所使用的程序语言拥有 Usage 权限。(有关使用 C 语言将 Usage 特权授予用户或角色的语法,请参阅 语言级权限 。)
用户定义过程,类似用户定义函数,使用创建时有效的对照顺序。请参阅 SET COLLATION 语句 获取关于使用非缺省对照的信息。