国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > PostgreSQL > 正文

PostgreSQL7.0手冊(cè)-用戶手冊(cè)-19. SQL命令-FETCH

2019-09-08 23:33:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
FETCH
名稱
FETCH ― 用游標(biāo)獲取行 

用法
FETCH [ selector ] [ count ] { IN | FROM } cursor
FETCH [ RELATIVE ] [ { [ # | ALL | NEXT | PRIOR ] } ] FROM ] cursor
輸入
selector 
selector 定義抓取的方向.它可以是下述之一: 
FORWARD 
  
抓取后面的行.selector 省略時(shí)這是缺省值. 
BACKWARD 
抓取前面行. 
RELATIVE 
為 SQL92 兼容設(shè)置的多余鍵字. 
count 
  
count 決定抓取幾行.可以是下列之一: 
# 
一個(gè)表明抓取幾行的整數(shù).注意負(fù)整數(shù)等效于改變 FORWARD 和 BACKWARD 屬性. 
ALL 
檢索所有剩余的行. 
NEXT 
等效于聲明 count 為 1. 
PRIOR 
等效于聲明 count 為 -1. 
cursor 
一個(gè)打開的游標(biāo)的名稱. 

輸出
FETCH 返回由聲明的游標(biāo)定義的查詢的結(jié)果.如果查詢失敗,將返回下面的信息: 
NOTICE: PerformPortalFetch: portal "cursor" not found 
如果 cursor 沒有定義,返回此信息.游標(biāo)必須在一個(gè)事務(wù)塊中定義. 
NOTICE: FETCH/ABSOLUTE not supported, using RELATIVE 
Postgres 不支持游標(biāo)的絕對(duì)定位. 
ERROR: FETCH/RELATIVE at current position is not supported 
SQL92 允許我們用下面語(yǔ)句在"當(dāng)前位置"不停地檢索游標(biāo) 
FETCH RELATIVE 0 FROM cursor
Postgres 目前不支持這種用法;實(shí)際上,零被保留用于檢索所有行,等效于聲明 ALL 關(guān)鍵字.如果使用 RELATIVE 關(guān)鍵字, Postgres 假設(shè)用戶試圖使用 SQL92 的特性,因而返回此錯(cuò)誤.
描述
FETCH 允許用戶使用游標(biāo)檢索行.所要檢索的行數(shù)用 # 聲明.如果游標(biāo)中剩下的行小于 #,那么只有那些可用的抓過來(lái).用關(guān)鍵字 ALL 代替數(shù)字將導(dǎo)致游標(biāo)中所有剩余行被抓過來(lái).記錄可以 FORWARD (向前)抓,也可以 BACKWARD (向后)抓.缺省的方向是 FORWARD (向前). 
小技巧: 可以用負(fù)數(shù)作為行記數(shù),符號(hào)等效于顛倒抓取方向關(guān)鍵字(FORWARD 和 BACKWARD).例如, FORWARD -1 等效于 BACKWARD 1.
注意
注意 FORWARD 和 BACKWARD 關(guān)鍵字是 Postgres擴(kuò)展.SQL92 語(yǔ)法也支持,在此命令的第二種形式中聲明.詳細(xì)的兼容性信息見下面. 
在游標(biāo)中更新數(shù)據(jù)還不被 Postgres 支持,因?yàn)閷⒂螛?biāo)更新影射回基本表是不太可能的,這一點(diǎn)對(duì) VIEW 更新也一樣.因而用戶必須顯式的使用 UPDATE 命令來(lái)更新數(shù)據(jù). 

游標(biāo)只能用于事務(wù)內(nèi)部,因?yàn)樗鼈兇鎯?chǔ)的數(shù)據(jù)跨越了多個(gè)用戶的查詢. 

使用 MOVE 語(yǔ)句改變游標(biāo)位置.使用 DECLARE 語(yǔ)句定義一個(gè)游標(biāo).使用 BEGIN,COMMIT,和 ROLLBACK 語(yǔ)句獲取更多關(guān)于事務(wù)的信息.

用法
下面的例子用一個(gè)游標(biāo)跨過一個(gè)表。 
-- 建立一個(gè)游標(biāo):

BEGIN WORK;
DECLARE liahona CURSOR FOR SELECT * FROM films;

-- 抓取頭 5 行到游標(biāo) liahona 里:
FETCH FORWARD 5 IN liahona;

 code  |          title          | did | date_prod  |  kind    | len
-------+-------------------------+-----+------------+----------+-------
 BL101 | The Third Man           | 101 | 1949-12-23 | Drama    | 01:44
 BL102 | The African Queen       | 101 | 1951-08-11 | Romantic | 01:43
 JL201 | Une Femme est une Femme | 102 | 1961-03-12 | Romantic | 01:25
 P_301 | Vertigo                 | 103 | 1958-11-14 | Action   | 02:08
 P_302 | Becket                  | 103 | 1964-02-03 | Drama    | 02:28

-- 抓取前面行:
FETCH BACKWARD 1 IN liahona;

 code  | title   | did | date_prod  | kind   | len
-------+---------+-----+------------+--------+-------
 P_301 | Vertigo | 103 | 1958-11-14 | Action | 02:08

-- 關(guān)閉游標(biāo)并提交工作:

CLOSE liahona;
COMMIT WORK;
兼容性
SQL92
注意:非嵌入式游標(biāo)的使用是 Postgres 擴(kuò)展.游標(biāo)的語(yǔ)法和用途與定義與 SQL92里定義的嵌入式用法相似。
SQL92 允許游標(biāo)在 FETCH 中的絕對(duì)定位,并且允許將結(jié)果放在顯式的變量里. 
FETCH ABSOLUTE #
    FROM cursor
    INTO :variable [, ...]
ABSOLUTE 
游標(biāo)將放置在寫明的絕對(duì)的行數(shù)的位置上.在 Postgres 中所有的行數(shù)都是相對(duì)數(shù)量,所以這一功能不支持. 
:variable 
目標(biāo)宿主變量.
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 惠来县| 吉林市| 普兰店市| 兴和县| 桓仁| 沈丘县| 商洛市| 始兴县| 南靖县| 开阳县| 腾冲县| 阿合奇县| 卢龙县| 铜陵市| 海丰县| 偃师市| 台山市| 绍兴县| 正宁县| 阳朔县| 桑植县| 旌德县| 克什克腾旗| 团风县| 高阳县| 建始县| 博乐市| 都昌县| 广昌县| 高青县| 招远市| 西华县| 公安县| 罗田县| 木兰县| 石景山区| 秀山| 新津县| 新乐市| 宝丰县| 宜春市|