暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CALL 语句——GBASE语法分享

郑小雯 2023-10-13
102

CALL 语句

您可使用 CALL 语句,从 SPL 例程调用 SPL 例程或外部例程。CALL 可执行过程,也 可执行函数。如果您使用 CALL 来执行函数,则请添加 RETURNING 子句和将要接收该 函数返回的值的 SPL 变量的名称。

例如,假设您想要 scale_rectangles 函数调用计算矩形面积的外部函数,然后返回带有矩形 描述的面积,如下图所示。

图: 调用外部函数。

CREATE FUNCTION scale_rectangles( rectid INTEGER, scale REAL ) RETURNING rectangle_t, REAL; DEFINE rectv rectangle_t; DEFINE a REAL; SELECT rect INTO rectv FROM rectangles WHERE id = rectid; IF ( rectv IS NULL ) THEN LET rectv.start = (0.0,0.0); LET rectv.length = 1.0; LET rectv.width = 1.0; LET a = 1.0; RETURN rectv, a; ELSE LET rectv.length = scale * rectv.length; LET rectv.width = scale * rectv.width; CALL area(rectv.length, rectv.width) RETURNING a; RETURN rectv, a; END IF; END FUNCTION;

该 SPL 函数使用执行外部函数 area() 的 CALL 语句。返回的值 area() 保存在 a 中,并通 过 RETURN 语句返回到调用例程。

在此示例中,area() 是外部函数,但您可以同样的方式将 CALL 用于 SPL 函数。 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论