GBase8s数据库CREATE FUNCTION FROM 语句

[复制链接]
查看11 | 回复1 | 2021-11-11 16:33:00 | 显示全部楼层 |阅读模式
使用 CREATE FUNCTION FROM 语句访问 CREATE FUNCTION 语句驻留在独立文件中的用户定义的函数。该语句是 SQL ANSI/ISO 标准的扩展。请在 ESQL/C 中 使用此语句。语法:
用法使用 C 或 Java? 语句编写的函数称为外部函数。当 IFX_EXTEND_ROLE 配置参数设置成 ON时,只有被授予内置 EXTEND 角色的用户才可以创建外部函数。GBase 8s ESQL/C 程序不能直接创建用户定义的函数。即,它不能包含 CREATE FUNCTION 语句。在 GBase 8s ESQL/C 程序内创建这些函数:用 CREATE FUNCTION 语句创建源文件。使用 CREATE FUNCTION FROM 语句将该源文件的内容发送到数据库服务器以执行。您在 file 参数中指定的文件只能包含一个 CREATE FUNCTION 语句。例如:假设以下 CREATE FUNCTION 语句位于名为 del_ord.sql 的独立文件中:CREATE FUNCTION delete_order( p_order_num INT) RETURNING INT, INT;DEFINE item_count INT;SELECT count(*) INTO item_count FROM itemsWHERE order_num = p_order_num;DELETE FROM orders WHERE order_num = p_order_num;RETURN p_order_num, item_count;END FUNCTION;在 GBase 8s ESQL/C 程序中,您可以使用以下 CREATE FUNCTION FROM 语句访问delete_order( ) SPL 函数:EXEC SQL create function from 'del_ord.sql';如果您不确定文件中的 UDR 是用户定义的函数还是用户定义的过程,请使用 CREATE ROUTINEFROM 语句。您提供的文件名是相对的。如果您提供不带路径名的简单文件名(如上述示例所示),则客户端应用程序在当前目录中查找该文件。重要: GBase 8s ESQL/C 预处理器不处理您指定的文件的内容。它只将内容发送到数据库服务器以执行。因此,对于您在 CREATE FUNCTION FROM 中指定的文件是否实际包含 CREATE FUNCTION语句没有进行语法检查。然而,要提高代码的可读性,建议匹配这两个语句。

回复

使用道具 举报

千问 | 2021-11-11 16:33:00 | 显示全部楼层
现在我们有些用户就是 要求用GBase8s数据库了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行