返回首页

gbase数据、南大通用产品文档:GBase8s处理参数化的用户定义的例程

更新日期:2024年09月11日

本部分描述如何以 sqlda 结构来处理参数化的用户定义的例程。下列语句
执行用户定义的例程:
EXECUTE FUNCTION 语句执行(外部的和 SPL)用户定义的函数。
EXECUTE PROCEDURE 语句执行(外部的和 SPL)用户定义的过程。
如果准备好的 EXECUTE PROCEDURE 或 EXECUTE FUNCTION 语句有参数,指
定这些参数作为未知数目和数据类型的输入参数,则您的 GBase 8s ESQL/C 程序可使用
sqlda 结构来定义该输入参数。
执行参数化的函数
您处理用户定义的函数的输入参数的方式,
与您处理 SELECT 语句的 WHERE 子句
中的输入参数的方式相同,如下:
执行非游标函数的方式,与单个 SELECT 语句的方式相同。
如果您在此时知道您编写的程序,其动态的用户定义的函数总是只返
回一行,
则您可使用 EXECUTE...USING
DESCRIPTOR...INTO 语句来提
供来自 sqlda 结构的参数值,并执行该函数。

执行游标函数的方式,与返回一行或多行的 SELECT 语句的方式相同。
如果您在此时不确定您编写的程序,其动态的用户定义的函数是否总是只返回一行,
则请定义函数游标,并使用 OPEN...USING DESCRIPTOR 语句来提供来自 sqlda 结构的
参数值。

执行这些 EXECUTE FUNCTION 与 SELECT 语句的唯一区别在于,您为非游标函
数准备 EXECUTE FUNCTION 语句,而不是 SELECT 语句。
执行参数化的过程

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 596 -
要执行参数化的用户定义的过程,您可使用 EXECUTE...USING DESCRIPTOR 语句
来提供来自 sqlda 结构的参数值,并执行该过程。您处理用户定义的过程的输入参数的方
式,
与您处理非游标函数的输入参数的方式相同。
执行 EXECUTE PROCEDURE 语句与执
行 EXECUTE FUNCTION 语句(对于非游标函数)的唯一区别,在于您不需要为用户定
义的过程指定 EXECUTE...USING DESCRIPTOR 语句的 INTO 子句。

... - 756 -

...................................
- 42 -