PL/pgSQL - 游標(CURSOR)
更新:2007-03-14
對映章節:C37.8
內容:
一般的 SELECT 使用 LIMIT 來限制取回 Data 的數量, 其餘的 Queries 均會回傳整個搜尋結果.
但當資料量龐大時回傳會造成本上升, 且可能導致 Client 的 RAM 耗盡. CURSOR 就在這情況被用來解決上述的問題.
條件:
- 必須於 Transaction Block 中宣告使用. (SQL-92不限制)
- SQL-92定義:CURSOR 必須搭配 OPEN/CLOSE 來挷住資源
(PostgreSQL 可不宣告). - SQL-92:CURSOR 是可更新的, PostgreSQL read only.
Syntax
DECLARE [name] CURSOR FOR [Queries]
**FOR 可替換成 IS 為了和 ORACLE 相容****
OPEN [name];
CLOSE [name];
FETCH ...
沒有留言:
張貼留言