云数据库 GaussDB-FETCH:示例

时间:2023-11-01 16:22:03

示例

--SELECT语句,用一个游标读取一个表。开始一个事务。openGauss=# START TRANSACTION;--建立一个名为cursor1的游标。openGauss=# CURSOR cursor1 FOR SELECT * FROM tpcds.customer_address ORDER BY 1;--抓取头3行到游标cursor1里。openGauss=# FETCH FORWARD 3 FROM cursor1; ca_address_sk |  ca_address_id   | ca_street_number |   ca_street_name   | ca_street_type  | ca_suite_number |     ca_city     |    ca_county    | ca_state |   ca_zip   |  ca_country   | ca_gmt_offset |   ca_location_type   ---------------+------------------+------------------+--------------------+-----------------+-----------------+-----------------+-----------------+----------+------------+---------------+---------------+----------------------             1 | AAAAAAAABAAAAAAA | 18               | Jackson            | Parkway         | Suite 280       | Fairfield       | Maricopa County | AZ       | 86192      | United States |         -7.00 | condo                            2 | AAAAAAAACAAAAAAA | 362              | Washington 6th     | RD              | Suite 80        | Fairview        | Taos County     | NM       | 85709      | United States |         -7.00 | condo                            3 | AAAAAAAADAAAAAAA | 585              | Dogwood Washington | Circle          | Suite Q         | Pleasant Valley | York County     | PA       | 12477      | United States |         -5.00 | single family       (3 rows)--关闭游标并提交事务。openGauss=# CLOSE cursor1;--结束一个事务。openGauss=# END;--VALUES子句,用一个游标读取VALUES子句中的内容。开始一个事务。openGauss=# START TRANSACTION;--建立一个名为cursor2的游标。openGauss=# CURSOR cursor2 FOR VALUES(1,2),(0,3) ORDER BY 1;--抓取头2行到游标cursor2里。openGauss=# FETCH FORWARD 2 FROM cursor2;column1 | column2---------+---------0 |       31 |       2(2 rows)--关闭游标并提交事务。openGauss=# CLOSE cursor2;--结束一个事务。openGauss=# END;--WITH HOLD游标的使用,开启事务。openGauss=# START TRANSACTION;--创建一个with hold游标。openGauss=# DECLARE cursor1 CURSOR WITH HOLD FOR SELECT * FROM tpcds.customer_address ORDER BY 1;--抓取头2行到游标cursor1里。openGauss=# FETCH FORWARD 2 FROM cursor1; ca_address_sk |  ca_address_id   | ca_street_number |   ca_street_name   | ca_street_type  | ca_suite_number |     ca_city     |    ca_county    | ca_state |   ca_zip   |  ca_country   | ca_gmt_offset |   ca_location_type   ---------------+------------------+------------------+--------------------+-----------------+-----------------+-----------------+-----------------+----------+------------+---------------+---------------+----------------------             1 | AAAAAAAABAAAAAAA | 18               | Jackson            | Parkway         | Suite 280       | Fairfield       | Maricopa County | AZ       | 86192      | United States |         -7.00 | condo                            2 | AAAAAAAACAAAAAAA | 362              | Washington 6th     | RD              | Suite 80        | Fairview        | Taos County     | NM       | 85709      | United States |         -7.00 | condo               (2 rows)--结束事务。openGauss=# END;--抓取下一行到游标cursor1里。openGauss=# FETCH FORWARD 1 FROM cursor1; ca_address_sk |  ca_address_id   | ca_street_number |   ca_street_name   | ca_street_type  | ca_suite_number |     ca_city     |    ca_county    | ca_state |   ca_zip   |  ca_country   | ca_gmt_offset |   ca_location_type   ---------------+------------------+------------------+--------------------+-----------------+-----------------+-----------------+-----------------+----------+------------+---------------+---------------+----------------------             3 | AAAAAAAADAAAAAAA | 585              | Dogwood Washington | Circle          | Suite Q         | Pleasant Valley | York County     | PA       | 12477      | United States |         -5.00 | single family       (1 row)--关闭游标。openGauss=# CLOSE cursor1;
support.huaweicloud.com/centralized-devg-v2-opengauss/devg_03_0637.html