使用 CREATE FUNCTION FROM 语句访问 CREATE FUNCTION 语句驻留在独立文件中的用户定义的函数。
该语句是 SQL ANSI/ISO 标准的扩展。请在 ESQL/C 中 使用此语句。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
file | 包含完整 CREATE FUNCTION 语句文本的文件的路径和文件名。缺省路径名为当前目录。 | 必须存在,且仅包含一个 CREATE FUNCTION 语句 | 必须遵循操作系统规则 |
file_var | 存储 file 值的变量 | 与 file 的限制相同 | 特定于语言 |
使用 C 或 Java™ 语句编写的函数称为外部函数。当 IFX_EXTEND_ROLE 配置参数设置成 ON 时,只有被授予内置 EXTEND 角色的用户才可以创建外部函数。
GBase 8s ESQL/C 程序不能直接创建用户定义的函数。即,它不能包含 CREATE FUNCTION 语句。
在 GBase 8s ESQL/C 程序内创建这些函数:
您在 file 参数中指定的文件只能包含一个 CREATE FUNCTION 语句。
CREATE FUNCTION delete_order( p_order_num INT) RETURNING INT, INT; DEFINE item_count INT; SELECT count(*) INTO item_count FROM items WHERE order_num = p_order_num; DELETE FROM orders WHERE order_num = p_order_num; RETURN p_order_num, item_count; END FUNCTION;
EXEC SQL create function from 'del_ord.sql';
如果您不确定文件中的 UDR 是用户定义的函数还是用户定义的过程,请使用 CREATE ROUTINE FROM 语句。