」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > PL/SQL 中的批量收集

PL/SQL 中的批量收集

發佈於2024-11-08
瀏覽:492

BULK COLLECT in PL/SQL

當然!以下是一個簡單的範例來示範 BULK COLLECT 在 PL/SQL 中的使用。

什麼是大量收集?

BULK COLLECT 是一種用於在單一操作中將 SQL 查詢中的多行取得到 PL/SQL 集合中的方法。這減少了 SQL 和 PL/SQL 引擎之間的上下文切換,使流程更加高效,尤其是對於大型資料集。

批量收集的簡單範例

在此範例中,我們將建立一個表,向其中插入一些數據,然後使用 BULK COLLECT 將數據提取到集合中。

第 1 步:建立範例表

首先,我們建立一個名為員​​工的範例表。

建立表員工(
員工 ID NUMBER,
員工姓名 VARCHAR2(50)
);

INSERT INTO 員工 (employee_id,employee_name) VALUES (1, 'John Doe');
INSERT INTO 員工 (employee_id,employee_name) VALUES (2, 'Jane Smith');
INSERT INTO 員工 (employee_id, employee_name) VALUES (3, 'Sam Wilson');
INSERT INTO 員工 (employee_id,employee_name) VALUES (4, 'Sara Brown');
INSERT INTO 員工 (employee_id,employee_name) VALUES (5, 'Mike Johnson');

犯罪;

步驟 2:使用 Bulk Collect 的 PL/SQL 區塊

現在,我們將使用 BULK COLLECT 將所有員工姓名提取到集合中。

宣布
類型 emp_name_table 是 VARCHAR2(50) 的表格; -- 定義集合類型
emp_names emp_name_table; -- 宣告該類型的變數
開始
-- 大量收集員工姓名到集合中
選擇員工姓名批量收集到員工姓名
來自員工;

-- Print the names
FOR i IN 1..emp_names.COUNT LOOP
    DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_names(i));
END LOOP;

結尾;
/

解釋

  1. 定義集合類型:我們定義一個名為 emp_name_table 的集合類型來保存員工姓名。

  2. BULK COLLECT INTO:SELECT語句從employees表中取得所有employee_name值,並將它們一次收集到emp_names集合中。

  3. 循環顯示結果:我們使用 COUNT 循環遍歷集合以取得條目總數並列印每位員工姓名。

輸出

如果運行上面的 PL/SQL 區塊,您將看到如下輸出:

員工姓名:John Doe
員工姓名:簡‧史密斯
員工姓名:薩姆·威爾遜
員工姓名:薩拉布朗
員工姓名:麥克·約翰遜

要點

效率:使用 BULK COLLECT 減少了 SQL 和 PL/SQL 之間的上下文切換次數,從而更有效率地處理大量資料。

處理大數據:當您處理大型資料集時,它特別有用,因為它可以最大限度地減少單一行處理的開銷。

此範例說明了 BULK COLLECT 的基本用法,以有效地將多行收集到 PL/SQL 集合中。

版本聲明 本文轉載於:https://dev.to/mrcaption49/bulk-collect-in-plsql-34hc?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • MLP-混合器(理論)
    MLP-混合器(理論)
    TL;DR - This is the first article I am writing to report on my journey studying the MPL-Mixer architecture. It will cover the basics up to an intermed...
    程式設計 發佈於2024-11-08
  • 為什麼需要類型保護?探索不同類型及其用例
    為什麼需要類型保護?探索不同類型及其用例
    為什麼需要型別保護?探索不同類型及其用例 在 TypeScript 中,類型保護在使程式碼庫更加可靠、對開發人員更友善方面發揮著重要作用。它們透過允許開發人員縮小類型來幫助確保類型安全,這有助於減少運行時錯誤並使程式碼更易於理解和維護。 什麼是型別保護? 類型保護是對類型執行運行時檢查的函數表達...
    程式設計 發佈於2024-11-08
  • 如何在 CSS 中將 Div 置中
    如何在 CSS 中將 Div 置中
    彈性盒: .container { display: flex; justify-content: center; align-items: center; height: 300px; } 網格 .container { display: gr...
    程式設計 發佈於2024-11-08
  • z-index如何控制網頁上的元素堆疊?
    z-index如何控制網頁上的元素堆疊?
    揭開z-index 的神秘面紗:綜合指南z-index 屬性在確定z-index 的堆疊順序方面起著關鍵作用網頁上的元素。然而,其複雜性可能會引起疑問。讓我們深入研究 z-index 的真正運作方式並解決一些關鍵查詢。 z-index 的功能每個網頁都包含一堆稱為堆疊上下文的元素。 z-Index ...
    程式設計 發佈於2024-11-08
  • Flex 專案是區塊級還是 Flex 級?深入研究 CSS 佈局
    Flex 專案是區塊級還是 Flex 級?深入研究 CSS 佈局
    Flex 專案令人困惑的本質:區塊級還是 Flex 等級? Flex 專案是否是區塊級的問題一直是CSS 開發者之間的爭論。 CSS 靈活框佈局模組等級 1 規定 Flex 項目位於 Flex 級別,而不是區塊級別。然而,後面的部分顯示彈性項目的顯示值是「塊化」的。這就提出了一個問題:Flex 專案...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 中防止「通知:會話已啟動」?
    如何在 PHP 中防止「通知:會話已啟動」?
    避免通知:會話已經開始在PHP 中使用會話時,必須意識到以下潛在錯誤:如果會話在啟動後嘗試再次啟動,則會發生此情況。當程式碼中的會話管理不當時,可能會出現此錯誤「注意:會話已啟動 - 忽略 session_start()」。 為了避免此通知,檢查會話是否已啟動至關重要。在嘗試啟動新的之前已初始化。這...
    程式設計 發佈於2024-11-08
  • Python 3.3 中 Yield from Syntax 的實際應用和功能是什麼?
    Python 3.3 中 Yield from Syntax 的實際應用和功能是什麼?
    Yield From 語法在Python 3.3 中的實際應用建立透明的資料交換yield from 語法在呼叫者和被呼叫者之透明的資料交換yield from 語法在呼叫者和被呼叫者之透明的資料交換def reader(): "Simulates reading data fro...
    程式設計 發佈於2024-11-08
  • 在 Python 中使用標準化剪切 (NCut) 進行無監督影像分割的指南
    在 Python 中使用標準化剪切 (NCut) 進行無監督影像分割的指南
    介绍 图像分割在理解和分析视觉数据方面起着至关重要的作用,而归一化剪切(NCut)是一种广泛使用的基于图的分割方法。在本文中,我们将探索如何使用 Microsoft Research 的数据集在 Python 中应用 NCut 进行无监督图像分割,重点是使用超像素提高分割质量。 数...
    程式設計 發佈於2024-11-08
  • 如何在單一 FastAPI 端點中處理表單和 JSON 資料?
    如何在單一 FastAPI 端點中處理表單和 JSON 資料?
    如何建立可以接受表單或 JSON 正文的 FastAPI 端點? 在 FastAPI 中,您可以建立可以接受表單或 JSON 正文的端點使用不同的方法。以下是幾個選項:選項1:使用依賴函數此選項涉及建立一個依賴函數,該函數檢查Content-Type 請求標頭的值並使用Starlette 的方法解析...
    程式設計 發佈於2024-11-08
  • 什麼時候應該在 JavaScript 中使用非同步函數?
    什麼時候應該在 JavaScript 中使用非同步函數?
    JavaScript 中的非同步函數:理解「async」與「await」簡介在JavaScript 的非同步程式設計模型中,處理非同步任務及其完成回呼可能會導致複雜的程式碼結構。非同步函數與“async”和“await”關鍵字一起提供了一種更結構化和高效的方法。 非同步函數非同步函數是呼叫時不會阻塞...
    程式設計 發佈於2024-11-08
  • 艱難地學習 HTML 和 CSS(免費電子書)
    艱難地學習 HTML 和 CSS(免費電子書)
    如果您是前端開發人員,您正在使用 HTML 和 CSS。 然而,你可能不… ...記住所有 HTML 元素及其意義 …知道所有無效元素 ...了解所有具有可選開始或結束標籤的元素(並使用它來編寫 HTML–HTML) …了解元素類別 …了解所有 HTML 屬性 …清楚所有全域屬性 …知道哪些元素有...
    程式設計 發佈於2024-11-08
  • 群有什麼新鮮事
    群有什麼新鮮事
    Laravel Herd 1.11 剛剛發布,他們引入了一些我們期待已久的有趣功能。 以下是 Herd 1.11 的內容摘要: Forge 整合:輕鬆將本地站點連接到 Laravel Forge 並直接透過 Herd UI 或 CLI 進行部署。 Profiler:使用 herd profile...
    程式設計 發佈於2024-11-08
  • 如何使用 usort 和自訂比較函數按特定鍵對多維數組進行排序?
    如何使用 usort 和自訂比較函數按特定鍵對多維數組進行排序?
    按鍵將多維數組排序處理多維數組時的一個常見任務是需要根據特定鍵對它們進行排序。例如,考慮以下數組:Array ( [0] => Array ( [iid] => 1 [invitee] => 174 [nid] => 3...
    程式設計 發佈於2024-11-08
  • 計算中的冪等性:綜合指南
    計算中的冪等性:綜合指南
    在電腦科學和軟體工程領域,某些概念和原理在確保系統的穩健性、可靠性和可預測性方面發揮著至關重要的作用。其中一個概念是冪等性,這個術語雖然看似深奧,但在各個領域都具有深遠的影響,包括 Web 服務、資料庫和函數式程式設計。本文深入探討了冪等性的定義、重要性和實際應用,旨在全面了解其在現代計算中的作用...
    程式設計 發佈於2024-11-08
  • NodeList 到 Array:「Array.from()」真的是最快的嗎?
    NodeList 到 Array:「Array.from()」真的是最快的嗎?
    從NodeList 轉換為Array:揭開最快的方法之前的討論建議利用Array.prototype.slice.call(nl )方法提供了從NodeList 到Array 的最有效的轉換。然而,最近的基準測試揭示了一個驚人的不同現實。與流行的看法相反,傳統的 for 循環方法 for(var i...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3