南大通用GBase8s 常用SQL语句(四十九)

1.1CREATE FUNCTION FROM 语句
使用 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 程序内创建这些函数:
1.用 CREATE FUNCTION 语句创建源文件。
2.使用 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 items
WHERE 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 ROUTINE FROM 语句。
您提供的文件名是相对的。如果您提供不带路径名的简单文件名(如上述示例所示),则客户端应用程序在当前目录中查找该文件。
重要: GBase 8s ESQL/C 预处理器不处理您指定的文件的内容。它只将内容发送到数据库服务器以执行。因此,对于您在 CREATE FUNCTION FROM 中指定的文件是否实际包含 CREATE FUNCTION 语句没有进行语法检查。然而,要提高代码的可读性,建议匹配这两个语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值