EXECUTE

功能描述

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

注意事项

  • 如果创建预备语句的PREPARE语句声明了一些参数,那么传递给EXECUTE语句的必须是一个兼容的参数集,否则就会生成一个错误。

  • 相比于原始的openGauss,dolphin对于PREPARE语法的修改为:支持EXECUTE USING语法。

语法格式

  1. EXECUTE name [ ( parameter [, ...] ) ];
  2. EXECUTE name USING parameter [, ...];

参数说明

  • name

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

  • parameter

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

示例

  1. --创建表reason
  2. openGauss=# CREATE TABLE tpcds.reason (
  3. CD_DEMO_SK INTEGER NOT NULL,
  4. CD_GENDER character(16) ,
  5. CD_MARITAL_STATUS character(100)
  6. )
  7. ;
  8. --插入数据。
  9. openGauss=# INSERT INTO tpcds.reason VALUES(51, 'AAAAAAAADDAAAAAA', 'reason 51');
  10. --创建表reason_t1
  11. openGauss=# CREATE TABLE tpcds.reason_t1 AS TABLE tpcds.reason;
  12. --为一个INSERT语句创建一个预备语句然后执行它。
  13. openGauss=# PREPARE insert_reason(integer,character(16),character(100)) AS INSERT INTO tpcds.reason_t1 VALUES($1,$2,$3);
  14. openGauss=# EXECUTE insert_reason(52, 'AAAAAAAADDAAAAAA', 'reason 52');
  15. openGauss=# EXECUTE insert_reason USING 52, 'AAAAAAAADDAAAAAA', 'reason 52';
  16. --删除表reasonreason_t1
  17. openGauss=# DROP TABLE tpcds.reason;
  18. openGauss=# DROP TABLE tpcds.reason_t1;