2007-03-14

PL/pgSQL - 游標(CURSOR)

更新:2007-03-14
對映章節:C37.8

內容:
一般的 SELECT 使用 LIMIT 來限制取回 Data 的數量, 其餘的 Queries 均會回傳整個搜尋結果.
但當資料量龐大時回傳會造成本上升, 且可能導致 Client 的 RAM 耗盡. CURSOR 就在這情況被用來解決上述的問題.

條件:
  1. 必須於 Transaction Block 中宣告使用. (SQL-92不限制)
  2. SQL-92定義:CURSOR 必須搭配 OPEN/CLOSE 來挷住資源
    (PostgreSQL 可不宣告).
  3. SQL-92:CURSOR 是可更新的, PostgreSQL read only.


Syntax
DECLARE [name] CURSOR FOR [Queries]
**FOR 可替換成 IS 為了和 ORACLE 相容****

OPEN [name];
CLOSE [name];

FETCH ...

沒有留言:

張貼留言