云数据库 GaussDB-循环语句:FORALL批量查询语句

时间:2025-02-12 15:08:12

FORALL批量查询语句

语法图

forall::=语句图图9所示。

图9 forall::=

label declaration ::语句如图10所示。

图10 label declaration ::=

变量index会自动定义为integer类型并且只在此循环里存在。index的取值介于low_bound和upper_bound之间。

示例

 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243
gaussdb=# CREATE TABLE TEST_t1 (  title NUMBER(6),  did VARCHAR2(20),  data_period VARCHAR2(25),  kind VARCHAR2(25),  interval VARCHAR2(20),  time DATE,  isModified VARCHAR2(10))DISTRIBUTE BY hash(did);CREATE TABLEgaussdb=# INSERT INTO TEST_t1 VALUES( 8, 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', to_date('21-06-1999', 'dd-mm-yyyy'), 'SH_CLERK' );INSERT 0 1gaussdb=# CREATE OR REPLACE PROCEDURE proc_forall()AS BEGIN     FORALL i IN 100..120         update TEST_t1 set title = title + 100*i;END; /CREATE PROCEDURE--调用存储过程gaussdb=# CALL proc_forall(); proc_forall -------------(1 row)--查询存储过程调用结果gaussdb=# SELECT * FROM TEST_t1; title  |  did   | data_period |   kind   |   interval   |        time         | ismodified --------+--------+-------------+----------+--------------+---------------------+------------ 231008 | Donald | OConnell    | DOCONNEL | 650.507.9833 | 1999-06-21 00:00:00 | SH_CLERK(1 row)--删除存储过程和表gaussdb=# DROP PROCEDURE proc_forall;DROP PROCEDUREgaussdb=# DROP TABLE TEST_t1;DROP TABLE
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0786.html