VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

EXECUTE

功能描述

执行一个前面准备好的预备语句。因为一个预备语句只在会话的生命期里存在,那么预备语句必须是在当前会话的前些时候用PREPARE语句创建的。

本文档只介绍新增EXECUTE语句兼容MySQL的特性,原Vastbase的EXECUTE语法未做删除和修改,详见EXECUTE

Vastbase在MySQL兼容模式下,支持EXECUTE语句如下特性用法:

  • 支持EXECUTE USING语法。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
  • 如果创建预备语句的PREPARE语句声明了一些参数,那么传递给EXECUTE语句的必须是一个兼容的参数集,否则就会生成一个错误。

语法格式

EXECUTE name USING parameter [, ...];

参数说明

  • name

    要执行的预备语句的名称。

  • parameter

    给预备语句的一个参数的具体数值。它必须是一个和生成与创建这个预备语句时指定参数的数据类型相兼容的值的表达式。

示例

1、创建测试表并插入数据。

CREATE TABLE reason ( CD_DEMO_SK INTEGER NOT NULL,CD_GENDER character(16),CD_MARITAL_STATUS character(100));
INSERT INTO reason VALUES(51, 'AAAAAAAADDAAAAAA', 'reason 51');
CREATE TABLE reason_t1 AS TABLE reason;

2、为一个INSERT语句创建一个预备语句。

PREPARE insert_reason(integer,character(16),character(100)) AS INSERT INTO reason_t1 VALUES($1,$2,$3);

3、执行准备好的预备语句。

EXECUTE insert_reason(52, 'AAAAAAAADDAAAAAA', 'reason 52'); 
EXECUTE insert_reason USING 52, 'AAAAAAAADDAAAAAA', 'reason 52'; 

4、查询表reason_t1数据。

select * from reason_t1;

返回结果如下:

 CD_DEMO_SK |    CD_GENDER     |      CD_MARITAL_STATUS
------------+------------------+------------------------------------------
         51 | AAAAAAAADDAAAAAA | reason 51
         52 | AAAAAAAADDAAAAAA | reason 52
         52 | AAAAAAAADDAAAAAA | reason 52
(3 rows)

5、删除表。

DROP TABLE reason;
DROP TABLE reason_t1;