中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

成都網(wǎng)站建設(shè)冠辰最近的重要新聞

成都網(wǎng)站建設(shè)冠辰,最近的重要新聞,網(wǎng)站建設(shè)營銷詞,做百度網(wǎng)站需要什么條件文章目錄 openGauss學習筆記-38 openGauss 高級數(shù)據(jù)管理-游標38.1 語法格式38.2 參數(shù)說明38.3 示例 openGauss學習筆記-38 openGauss 高級數(shù)據(jù)管理-游標 為了處理SQL語句,存儲過程進程分配一段內(nèi)存區(qū)域來保存上下文聯(lián)系。游標是指向上下文區(qū)域的句柄或指針。借助游…

文章目錄

    • openGauss學習筆記-38 openGauss 高級數(shù)據(jù)管理-游標
      • 38.1 語法格式
      • 38.2 參數(shù)說明
      • 38.3 示例

openGauss學習筆記-38 openGauss 高級數(shù)據(jù)管理-游標

為了處理SQL語句,存儲過程進程分配一段內(nèi)存區(qū)域來保存上下文聯(lián)系。游標是指向上下文區(qū)域的句柄或指針。借助游標,存儲過程可以控制上下文區(qū)域的變化。

38.1 語法格式

  • 定義游標

    CURSOR cursor_name[ BINARY ]  [ NO SCROLL ]  [ { WITH | WITHOUT } HOLD ]FOR query ;
    
  • 通過已經(jīng)創(chuàng)建的游標檢索數(shù)據(jù)

    FETCH [ direction { FROM | IN } ] cursor_name;
    

    其中direction子句為可選參數(shù)。

    NEXT| PRIOR| FIRST| LAST| ABSOLUTE count| RELATIVE count| count| ALL| FORWARD| FORWARD count| FORWARD ALL| BACKWARD| BACKWARD count| BACKWARD ALL
    
  • 在不檢索數(shù)據(jù)的情況下重新定位一個游標

    MOVE的作用類似于FETCH命令,但只是重定位游標而不返回行。

    MOVE [ direction [ FROM | IN ] ] cursor_name;
    

    其中direction子句為可選參數(shù)。

    NEXT| PRIOR| FIRST| LAST| ABSOLUTE count| RELATIVE count| count| ALL| FORWARD| FORWARD count| FORWARD ALL| BACKWARD| BACKWARD count| BACKWARD ALL
    
  • 關(guān)閉游標,釋放和一個游標關(guān)聯(lián)的所有資源

    CLOSE { cursor_name | ALL } ;
    

38.2 參數(shù)說明

  • cursor_name

    將要創(chuàng)建、關(guān)閉的游標名。

  • BINARY

    指明游標以二進制而不是文本格式返回數(shù)據(jù)。

  • NO SCROLL

    聲明游標檢索數(shù)據(jù)行的方式。

    • NO SCROLL:聲明該游標不能用于以倒序的方式檢索數(shù)據(jù)行。
    • 未聲明:根據(jù)執(zhí)行計劃的不同,自動判斷該游標是否可以用于以倒序的方式檢索數(shù)據(jù)行。
  • WITH HOLD | WITHOUT HOLD

    聲明當創(chuàng)建游標的事務(wù)結(jié)束后,游標是否能繼續(xù)使用。

    • WITH HOLD:聲明該游標在創(chuàng)建它的事務(wù)結(jié)束后仍可繼續(xù)使用。
    • WITHOUT HOLD:聲明該游標在創(chuàng)建它的事務(wù)之外不能再繼續(xù)使用,此游標將在事務(wù)結(jié)束時被自動關(guān)閉。
    • 如果不指定WITH HOLD或WITHOUT HOLD,默認行為是WITHOUT HOLD。
    • 跨節(jié)點事務(wù)不支持WITH HOLD(例如在多DBnode部署openGauss中所創(chuàng)建的含有DDL的事務(wù)屬于跨節(jié)點事務(wù))。
  • query

    使用SELECT或VALUES子句指定游標返回的行。

    取值范圍:SELECT或VALUES子句。

  • direction_clause

    定義抓取數(shù)據(jù)的方向。

    取值范圍:

    • NEXT(缺省值)

      從當前關(guān)聯(lián)位置開始,抓取下一行。

    • PRIOR

      從當前關(guān)聯(lián)位置開始,抓取上一行。

    • FIRST

      抓取查詢的第一行(和ABSOLUTE 1相同)。

    • LAST

      抓取查詢的最后一行(和ABSOLUTE -1相同)。

    • ABSOLUTE count

      抓取查詢中第count行。

      ABSOLUTE抓取不會比用相對位移移動到需要的數(shù)據(jù)行更快,因為下層的實現(xiàn)必須遍歷所有中間的行。

      count取值范圍:有符號的整數(shù)

      • count為正數(shù),就從查詢結(jié)果的第一行開始,抓取第count行。
      • count為負數(shù),就從查詢結(jié)果末尾抓取第abs(count)行。
      • count為0時,定位在第一行之前。
    • RELATIVE count

      從當前關(guān)聯(lián)位置開始,抓取隨后或前面的第count行。

      取值范圍:有符號的整數(shù)

      • count為正數(shù)就抓取當前關(guān)聯(lián)位置之后的第count行。
      • count為負數(shù)就抓取當前關(guān)聯(lián)位置之前的第abs(count)行。
      • 如果當前行沒有數(shù)據(jù)的話,RELATIVE 0返回空。
    • count

      抓取隨后的count行(和FORWARD count一樣)。

    • ALL

      從當前關(guān)聯(lián)位置開始,抓取所有剩余的行(和FORWARD ALL一樣)。

    • FORWARD

      抓取下一行(和NEXT一樣)。

    • FORWARD count

      從當前關(guān)聯(lián)位置開始,抓取隨后或前面的count行。

    • FORWARD ALL

      從當前關(guān)聯(lián)位置開始,抓取所有剩余行。

    • BACKWARD

      從當前關(guān)聯(lián)位置開始,抓取前面一行(和PRIOR一樣) 。

    • BACKWARD count

      從當前關(guān)聯(lián)位置開始,抓取前面的count行(向后掃描)。

      取值范圍:有符號的整數(shù)

      • count為正數(shù)就抓取當前關(guān)聯(lián)位置之前的count行。
      • count為負數(shù)就抓取當前關(guān)聯(lián)位置之后的abs(count)行。
      • 如果有數(shù)據(jù)的話,BACKWARD 0重新抓取當前行。
    • BACKWARD ALL

      從當前關(guān)聯(lián)位置開始,抓取所有前面的行(向后掃描) 。

  • { FROM | IN } cursor_name

    使用關(guān)鍵字FROM或IN指定游標名稱。

    取值范圍:已創(chuàng)建的游標的名稱。

  • ALL

    關(guān)閉所有已打開的游標。

38.3 示例

假設(shè)存在表customer_t1 ,數(shù)據(jù)內(nèi)容如下:

openGauss=# SELECT * FROM customer_t1;c_customer_sk | c_customer_id | c_first_name | c_last_name | amount
---------------+---------------+--------------+-------------+--------3769 |               | Grace        |             |3769 | hello         |              |             |6885 | maps          | Joes         |             |   22004321 | tpcds         | Lily         |             |   30009527 | world         | James        |             |   5000
(5 rows)
  • 用一個游標讀取一個表。

    --開始一個事務(wù)。
    openGauss=# START TRANSACTION;
    START TRANSACTION--建立一個名為cursor1的游標。
    openGauss=# CURSOR cursor1 FOR SELECT * FROM customer_t1;
    DECLARE CURSOR--抓取前3行到游標cursor1里。
    openGauss=# FETCH FORWARD 3 FROM cursor1;c_customer_sk | c_customer_id | c_first_name | c_last_name | amount
    ---------------+---------------+--------------+-------------+--------3769 |               | Grace        |             |3769 | hello         |              |             |6885 | maps          | Joes         |             |   2200
    (3 rows)--關(guān)閉游標并提交事務(wù)。
    openGauss=# CLOSE cursor1;
    CLOSE CURSOR--結(jié)束一個事務(wù)。
    openGauss=# END;
    COMMIT
    
  • 用一個游標讀取VALUES子句中的內(nèi)容。

    --開始一個事務(wù)。
    openGauss=# START TRANSACTION;
    START TRANSACTION--建立一個名為cursor2的游標。
    openGauss=# CURSOR cursor2 FOR VALUES(1,2),(0,3) ORDER BY 1;
    DECLARE CURSOR--抓取前2行到游標cursor2里。
    openGauss=# FETCH FORWARD 2 FROM cursor2;column1 | column2
    ---------+---------0 |       31 |       2
    (2 rows)--關(guān)閉游標并提交事務(wù)。
    openGauss=# CLOSE cursor2;
    CLOSE CURSOR--結(jié)束一個事務(wù)。
    openGauss=# END;
    COMMIT
    
  • WITH HOLD游標的使用。

    --開啟事務(wù)。
    openGauss=# START TRANSACTION;--創(chuàng)建一個with hold游標。
    openGauss=# DECLARE cursor1 CURSOR WITH HOLD FOR SELECT * FROM customer_t1;--抓取頭2行到游標cursor1里。
    openGauss=# FETCH FORWARD 2 FROM cursor1;c_customer_sk | c_customer_id | c_first_name | c_last_name | amount
    ---------------+---------------+--------------+-------------+--------3769 |               | Grace        |             |3769 | hello         |              |             |
    (2 rows)--結(jié)束事務(wù)。
    openGauss=# END;
    COMMIT--抓取下一行到游標cursor1里。
    openGauss=# FETCH FORWARD 1 FROM cursor1;c_customer_sk | c_customer_id | c_first_name | c_last_name | amount
    ---------------+---------------+--------------+-------------+--------6885 | maps          | Joes         |             |   2200
    (1 row)--關(guān)閉游標。
    openGauss=# CLOSE cursor1;
    CLOSE CURSOR
    
  • MOVE語句的使用。

    --開始一個事務(wù)。
    openGauss=# START TRANSACTION;
    START TRANSACTION--定義一個名為cursor1的游標。
    openGauss=# CURSOR cursor1 FOR SELECT * FROM customer_t1;
    DECLARE CURSOR--忽略游標cursor1的前3行。
    openGauss=# MOVE FORWARD 1 FROM cursor1;
    MOVE 1--抓取游標cursor1的前2行。
    openGauss=# FETCH 2 FROM cursor1;c_customer_sk | c_customer_id | c_first_name | c_last_name | amount
    ---------------+---------------+--------------+-------------+--------3769 | hello         |              |             |6885 | maps          | Joes         |             |   2200
    (2 rows)--關(guān)閉游標。
    openGauss=# CLOSE cursor1;
    CLOSE CURSOR--結(jié)束一個事務(wù)。
    openGauss=# END;
    COMMIT
    

👍 點贊,你的認可是我創(chuàng)作的動力!

?? 收藏,你的青睞是我努力的方向!

?? 評論,你的意見是我進步的財富!

圖片

http://m.risenshineclean.com/news/63530.html

相關(guān)文章:

  • 電子商務(wù)平臺經(jīng)營者通過交易規(guī)則seo關(guān)鍵詞排名報價
  • 北京有哪些網(wǎng)站建設(shè)公司百度搜索技巧
  • 韓國flash網(wǎng)站天天seo百度點擊器
  • 淡水做網(wǎng)站網(wǎng)絡(luò)推廣公司是干什么
  • 醴陵網(wǎng)站建設(shè)llwzjs宣傳平臺有哪些
  • 邯鄲 網(wǎng)站建設(shè)長沙企業(yè)seo優(yōu)化
  • 網(wǎng)站建設(shè)如何選擇域名鄭州網(wǎng)站推廣多少錢
  • 南京做公司網(wǎng)站的公司直通車怎么開才有效果
  • 3如何做網(wǎng)站推廣自動點擊器怎么用
  • 岳陽網(wǎng)格員國際站seo優(yōu)化是什么意思
  • 網(wǎng)站估值網(wǎng)絡(luò)營銷課程感悟
  • 泰州seo外包廣州seo工資
  • 網(wǎng)站域名費用怎么做帳廣州企業(yè)網(wǎng)站推廣
  • 網(wǎng)站開發(fā)服務(wù)合同寧波seo優(yōu)化定制
  • 怎么完整下載網(wǎng)站模板商業(yè)計劃書
  • c 網(wǎng)站開發(fā)框架2023年免費b站推廣大全
  • jsp做網(wǎng)站注冊頁面今日頭條最新版
  • 為什么網(wǎng)站顯示在建設(shè)中百度一下首頁登錄入口
  • 做網(wǎng)站的知名品牌公司需要多少錢
  • 杭州優(yōu)質(zhì)網(wǎng)站建設(shè)八大營銷模式有哪幾種
  • 南寧培訓網(wǎng)站建設(shè)五種網(wǎng)絡(luò)營銷推廣方法
  • 義烏品牌網(wǎng)站建設(shè)網(wǎng)站開發(fā)培訓
  • 網(wǎng)站外包價格淘寶關(guān)鍵詞優(yōu)化
  • 外賣網(wǎng)站建設(shè)的畢業(yè)論文seo網(wǎng)站推廣報價
  • 怎么做消費一卡通網(wǎng)站電商網(wǎng)站建設(shè)教程
  • 下載網(wǎng)站后怎么做社群營銷的具體方法
  • 網(wǎng)站建設(shè) 要維護么谷歌瀏覽器 免費下載
  • WordPress去掉新聞seo營銷服務(wù)
  • 東營今日頭條信陽seo
  • iis 網(wǎng)站訪問權(quán)限 設(shè)置域名注冊網(wǎng)站查詢