틀림없이! 다음은 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, 직원_이름) 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단계: 대량 수집을 사용한 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
직원 이름: 샘 윌슨
직원 이름: Sara Brown
직원 이름: Mike Johnson
핵심사항
효율성: BULK COLLECT를 사용하면 SQL과 PL/SQL 간의 컨텍스트 전환 수가 줄어들어 대규모 데이터 세트를 처리하는 데 더 효율적이 됩니다.
대규모 데이터 처리: 개별 행 처리의 오버헤드를 최소화하므로 대규모 데이터 세트로 작업할 때 특히 유용합니다.
이 예에서는 여러 행을 PL/SQL 컬렉션으로 효율적으로 수집하기 위한 BULK COLLECT의 기본 사용을 보여줍니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3