最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

openGauss存儲(chǔ)過程功能全面升級(jí),支持PACKAGE,PLDEBUGGER等諸多新特性

2022-03-09 19:30 作者:Gauss松鼠會(huì)  | 我要投稿
  • 存儲(chǔ)過程類似于面向過程語言當(dāng)中的函數(shù),可以實(shí)現(xiàn)面向過程語言當(dāng)中的聲明變量、邏輯判斷、條件循環(huán)等操作,是一組完成特定功能的SQL語句集合。

  • 在openGauss 2.1 之前的版本中,存儲(chǔ)過程支持了定義變量、條件循環(huán)、邏輯判斷等基本功能,但是沒有面向?qū)ο笳Z言中類的形式,因此無法對(duì)存儲(chǔ)過程中的變量以及函數(shù)進(jìn)行封裝,也無法在存儲(chǔ)過程內(nèi)使用全局變量。在以前的版本中沒有支持類似gdb的功能,用戶調(diào)試存儲(chǔ)過程只能夠使用raise info等打印變量的方式。并且在之前的版本當(dāng)中,存儲(chǔ)過程發(fā)生異常后,沒有自治事務(wù),記錄錯(cuò)誤日志不便。

  • 而在新的版本當(dāng)中,通過支持PACKAGE、存儲(chǔ)過程調(diào)試/PLDEBUGGER、自治事務(wù)等新功能,解決了上述問題。下面將介紹新特性的應(yīng)用場(chǎng)景以及使用方法。

特性一、PACKAGE

package是一組相關(guān)存儲(chǔ)過程、函數(shù)、變量、常量、游標(biāo)等PL/SQL程序的組合,具有面向?qū)ο蟮奶攸c(diǎn),可以對(duì)PL/SQL程序設(shè)計(jì)元素進(jìn)行封裝。package中的函數(shù)具有統(tǒng)一性,創(chuàng)建、刪除、修改都統(tǒng)一進(jìn)行。

package包含包頭(Package Specification)和Package Body兩個(gè)部分,其中包頭所包含的聲明可以被外部函數(shù)、匿名塊等訪問,而在包體中包含的聲明不能被外部函數(shù)、匿名塊等訪問,只能被包體內(nèi)函數(shù)和存儲(chǔ)過程等訪問。

下面可以看一組簡(jiǎn)單的例子理解一下:

特性二、PLDEBUGGER

DBE_PLDEBUGGER用于調(diào)試存儲(chǔ)過程,類似于GDB的功能,可以使用單步調(diào)試,設(shè)置斷點(diǎn)、打印調(diào)用堆棧等功能,方便了存儲(chǔ)過程的調(diào)試,減小了存儲(chǔ)過程的開發(fā)難度。詳細(xì)的使用方法以及說明可以參考在本文末提供的?[PLDEBUGGER接口及示例]

特性三、自治事務(wù)

自治事務(wù)(Autonomous Transaction),在主事務(wù)執(zhí)行過程中新啟的獨(dú)立的事務(wù)。自治事務(wù)的提交和回滾不會(huì)影響主事務(wù)已提交的數(shù)據(jù),同時(shí)自治事務(wù)也不受主事務(wù)影響。

自治事務(wù)在存儲(chǔ)過程、函數(shù)和匿名塊中定義,用PRAGMA AUTONOMOUS_TRANSACTION關(guān)鍵字來聲明。

自治事務(wù)一般用于存儲(chǔ)過程發(fā)生異常后,處理日志的時(shí)候。

下面可以看一個(gè)簡(jiǎn)單的示例:

pldebugger 接口及示例

pldebugger 接口


示例

  • 準(zhǔn)備調(diào)試

通過PG_PROC,查找到待調(diào)試存儲(chǔ)過程的oid,并執(zhí)行DBE_PLDEBUGGER.turn_on(oid)。本客戶端就會(huì)作為server端使用

  • 開始調(diào)試

server端執(zhí)行存儲(chǔ)過程,會(huì)在存儲(chǔ)過程內(nèi)第一條SQL語句前hang住,等待debug端發(fā)送的調(diào)試消息。僅支持直接執(zhí)行存儲(chǔ)過程的調(diào)試,不支持通過trigger調(diào)用執(zhí)行的存儲(chǔ)過程調(diào)試。

  • 再起一個(gè)客戶端,作為debug端,通過turn_on返回的數(shù)據(jù),調(diào)用DBE_PLDEBUGGER.attach關(guān)聯(lián)到該存儲(chǔ)過程上進(jìn)行調(diào)試。

  • 在執(zhí)行attach的客戶端調(diào)試,執(zhí)行下一條statement。

  • 在執(zhí)行attach的客戶端調(diào)試,可以執(zhí)行以下變量操作

  • 直接執(zhí)行完成當(dāng)前正在調(diào)試的存儲(chǔ)過程。

  • 直接退出當(dāng)前正在調(diào)試的存儲(chǔ)過程,不執(zhí)行尚未執(zhí)行的語句。

  • client端查看代碼信息并識(shí)別可以設(shè)置斷點(diǎn)行號(hào)。

  • 設(shè)置斷點(diǎn)

  • 查看斷點(diǎn)信息

  • 執(zhí)行至斷點(diǎn)


openGauss存儲(chǔ)過程功能全面升級(jí),支持PACKAGE,PLDEBUGGER等諸多新特性的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
夏邑县| 洞头县| 高唐县| 长泰县| 肥城市| 临颍县| 迁西县| 塔河县| 历史| 西乌珠穆沁旗| 海丰县| 菏泽市| 射阳县| 茌平县| 略阳县| 福州市| 莱州市| 封开县| 固镇县| 光泽县| 玉山县| 长岛县| 呈贡县| 淅川县| 宜宾市| 象山县| 准格尔旗| 比如县| 梁山县| 文昌市| 枣强县| 上林县| 天祝| 河南省| 旬阳县| 吴江市| 宁夏| 临夏市| 菏泽市| 驻马店市| 沙湾县|