GBase8s准备并执行用户定义的例程

准备并执行用户定义的例程

准备用户定义的例程(UDR)的方式依赖于该 UDR 是用户定义的过程还是用户定义的函数:

要准备用户定义的过程,请准备执行该过程的 EXECUTE PROCEDURE 语句。

要执行用户准备的过程,请使用 EXECUTE 语句。

要准备用户定义的函数,请准备执行该函数的 EXECUTE FUNCTION(或 EXECUTE

PROCEDURE)语句。

您不可在 PREPARE 语句中包括 EXECUTE FUNCTION(或 EXECUTE PROCEDURE)的 INTO

子句。

如何执行准备好的用户定义的函数,依赖于它是仅返回一组值还是多组值。对于仅返回一组值的用

户定义的函数,请使用 EXECUTE 语句。

要执行返回多于一组返回值的用户定义的函数,您必须将该 EXECUTE FUNCTION(或

EXECUTE PROCEDURE)语句与一游标相关联。

在单一语句准备中受限的语句

通常,您可准备任何数据操作语言(DML)语句。

在 GBase 8s 中,您可准备任何单一的 SQL 语句,除下列语句之外:

ALLOCATE COLLECTION

ALLOCATE DESCRIPTOR

ALLOCATE ROW

CLOSE

CONNECT

CREATE FUNCTION FROM

CREATE PROCEDURE FROM

CREATE ROUTINE FROM

DEALLOCATE COLLECTION

DEALLOCATE DESCRIPTOR

DEALLOCATE ROW

DECLARE

DESCRIBE

DISCONNECT

EXECUTE

EXECUTE IMMEDIATE

FETCH

FLUSH

FREE

GET DESCRIPTOR

GET DIAGNOSTICS

INFO

LOAD

OPEN

OUTPUT

PREPARE

PUT

SET AUTOFREE

SET CONNECTION

SET DEFERRED_PREPARE

SET DESCRIPTOR

UNLOAD

WHENEVER

您可准备 SELECT 语句。如果 SELECT 包括 INTO TEMP 子句,则 ESQL/C 程序可执行随同

EXECUTE 语句的准备好的语句。如果它不包括 INTO TEMP 子句,则该语句返回数据行。请使

用 DECLARE、OPEN 和 FETCH 游标语句来存取行。

在 ESQL/C 中,准备好的 SELECT 语句可包括 FOR 子句。随同 DECLARE 语句使用此子句来创建一

更新游标。下一示例展示在 GBase 8s ESQL/C 中带有 FOR UPDATE 子句的 SELECT 语句:

sprintf(up_query, “%s %s %s”,

"select * from customer ",

"where customer_num between ? and ? ",

“for update”);

EXEC SQL prepare up_sel from :up_query;

EXEC SQL declare up_curs cursor for up_sel;

EXEC SQL open up_curs using :low_cust,:high_cust;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值