>  기사  >  웹 프론트엔드  >  PL/SQL의 대량 수집

PL/SQL의 대량 수집

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-09-29 06:21:02797검색

BULK COLLECT in PL/SQL

그렇죠! 다음은 PL/SQL에서 BULK COLLECT 사용을 보여주는 간단한 예입니다.

일괄수집이란 무엇인가요?

BULK COLLECT는 단일 작업으로 SQL 쿼리의 여러 행을 PL/SQL 컬렉션으로 가져오는 데 사용되는 방법입니다. 이렇게 하면 SQL과 PL/SQL 엔진 간의 컨텍스트 전환이 줄어들어 특히 대규모 데이터 세트의 경우 프로세스가 더욱 효율적이 됩니다.

일괄 수집의 간단한 예

이 예에서는 테이블을 만들고 여기에 데이터를 삽입한 다음 BULK COLLECT를 사용하여 데이터를 컬렉션으로 가져옵니다.

1단계: 샘플 테이블 만들기

먼저 직원이라는 샘플 테이블을 만듭니다.

CREATE TABLE 직원(
직원 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, 직원_이름) VALUES (4, 'Sara Brown');
INSERT INTO 직원 (employee_id, 직원_이름) VALUES (5, 'Mike Johnson');

커밋;

2단계: 대량 수집을 사용한 PL/SQL 블록

이제 BULK COLLECT를 사용하여 모든 직원 이름을 컬렉션으로 가져옵니다.

선언
TYPE emp_name_table은 VARCHAR2(50)의 테이블입니다. -- 컬렉션 유형 정의
emp_names emp_name_table; -- 해당 유형의 변수를 선언하세요
시작
-- 직원 이름을 컬렉션으로 대량 수집
SELECT 직원 이름 BULK COLLECT INTO emp_names
직원들로부터;

-- 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 문은 직원 테이블에서 모든 Employee_name 값을 가져와 한 번에 emp_names 컬렉션에 수집합니다.

  3. 결과 표시를 위한 루프: COUNT를 사용하여 컬렉션을 반복하여 총 항목 수를 구하고 각 직원 이름을 인쇄합니다.

출력

위의 PL/SQL 블록을 실행하면 다음과 같은 출력이 표시됩니다.

직원 이름: John Doe
직원 이름: Jane Smith
직원 이름: Sam Wilson
직원 이름: Sara Brown
직원 이름: Mike Johnson

핵심사항

효율성: BULK COLLECT를 사용하면 SQL과 PL/SQL 간의 컨텍스트 전환 횟수가 줄어들어 대규모 데이터 세트를 처리하는 데 더 효율적이 됩니다.

대규모 데이터 처리: 개별 행 처리의 오버헤드를 최소화하므로 대규모 데이터세트로 작업할 때 특히 유용합니다.

이 예에서는 여러 행을 PL/SQL 컬렉션으로 효율적으로 수집하기 위한 BULK COLLECT의 기본 사용을 보여줍니다.

위 내용은 PL/SQL의 대량 수집의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.