그렇죠! 다음은 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;
종료;
/
설명
컬렉션 유형 정의: 직원 이름을 보관하기 위해 emp_name_table이라는 컬렉션 유형을 정의합니다.
BULK COLLECT INTO: SELECT 문은 직원 테이블에서 모든 Employee_name 값을 가져와 한 번에 emp_names 컬렉션에 수집합니다.
결과 표시를 위한 루프: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!