PL/SQL tutorial 77: Forall statement with Lower & Upper bound in Oracle Database

인터넷 최대 무엇입니까? 나는 RebellionRidercom에서 마니를 생각합니다

FORALL 시리즈 제 튜토리얼 대량 데이터 처리에서 여섯 하나 환영 시리즈 오늘 우리는 낮은 첫 번째 바운드 절을 FORALL 문을 사용하는 방법을 배우게됩니다 어퍼 바운드 시작하기 전에의 한 가지를 이해하자; FORALL 문은 동일한 작업을 수행 대량 수집 절 그러나 역 방식이다 예를 들면, 대량으로 우리가 테이블로부터 데이터를 가져오고로 저장 하였다 수집 컬렉션은,하지만 지금은 FORALL 문으로 우리는 컬렉션에서 데이터를 가져옵니다 테이블에 저장합니다 그의는 FORALL 문의 첫 번째 바운드 절에 다시 오게 말했다되고 낮은 및 상한

하부 및 상부 경계에서 우리는 연속의 유효 범위를 지정해야 우리가 지금까지의이 예를하자 이해하려고 논의 된 점을 모두 촬영 더 명확하게 낮은 및 상한 절을 FORALL 문 FORALL 문을 그래서 우리는 컬렉션에서 데이터를 가져 와서에 보관 우리는 일부 데이터와 우리가 덤프 수에 표와 컬렉션을 필요 의미 테이블 데이터 보유하는 새 테이블을 만들기 시작하는 다음의 처음에 서버 출력을 설정하자 자료 SERVEROUTPUT ON은 SET; (표 tut_77을 CREATE Mul_tab 번호 (5)); 여기에 테이블입니다 그냥 간단한 데모를 유지하기 위해, 우리는 전혀 거기에 제약이있는 테이블이 곱셈 테이블을 유지에만 열 "mul_tab"로 구성되어 있습니다

어떤 멋진 물건, 나는 쉽게 개념을 이해하기 간단하다 생각하지 않습니다 의 앞으로 이동하자 다음으로 우리는 우리가 컬렉션을 생성 될에 PL / SQL 블록을 작성합니다 일부 데이터로 채우기 그런 다음 사용 FORALL 문은 우리는 우리의 테이블 tut_77에 해당 데이터를 덤프합니다 그래서 그것을 할 수 있습니다

NUMBER 인덱스 테이블입니다 형 my_array 배열 선언 PLS_INTEGER; col_var my_array 배열; tot_rec 번호; 실행 섹션을 작성하기 전에,하자 빨리 우리가 선언 섹션에 한 일을 좀 봐 다음은이 섹션에서 우리와 함께 이름이 "my_array 배열"과 연관 배열을 선언 한 그 수집 변수입니다 연관 배열에 대한 자세한 내용은 내 PL / SQL 자습서 번호 57을 참조 할 수 있습니다, 나는 아래의 설명에 링크를 남겨 둘 것이다 다음 연관 배열에 우리는 이름의 다른 변수를 선언 한 "tot_rec" NUMBER 데이터 타입 우리는 컬렉션에서 가져온 얼마나 많은 기록을 확인하려면이 변수를 사용하고 테이블에 저장됩니다

이제 앞으로 이동하자 컬렉션을 –populate BEGIN I IN 110 LOOP의 col_var (I)의 경우 : * I = 9; END LOOP; 우리는 우리의 실행 섹션을 시작했습니다 for 루프 우리는 곱셈과 우리의 컬렉션 "my_array 배열"을 채우기하는이 숫자에 대한 루프를 사용하여 9 테이블

작업 번호 하나를 선언하고 채우는 : 테이블 만들기, 작업 번호 두 개를 완료 컬렉션도 이루어집니다 이 두 작업은 FORALL 문의 시연 무대를 설정합니다 이제 우리는 마지막 작업으로 남아 있습니다 여기에서 우리는 컬렉션 'my_array 배열'에서 데이터를 가져 와서 테이블로 저장됩니다 tut_77 FORALL 문을 사용하여 그래서이 FORALL 문을 작성할 수 있습니다

tut_77 INTO 110 INSERT IN FORALL의 IDX (mul_tab) VALUES (col_var (IDX)); 여기에 우리의 FORALL 문이다 이 문장에서 우리는 우리의 상한 우리의 하한로 1과 10을 사용했다 우리는 우리의 FORALL 문을 사용하여 수행하는 DML 작업은 INSERT입니다

이 INSERT의 DML을 사용하여 우리는 우리의 테이블 tut_77에 값을 삽입한다 그래서이 값은 무엇인가? 다음은 우리가 수집 my_array 배열에 삽입 된 값입니다 당신이 알고 같이 쓰는 동안 따라야하는 두 가지 필수 규칙이 있습니다 FORALL 문 이 규칙은 다음과 같습니다 1 을 먼저 FORALL 문은 한 번에 하나의 DML 문을 가질 수 있습니다

2 둘째는 자사 중 하나 값 또는 절은을 참조해야 DML 문 그 인덱스 우리는 우리의 바운드 절에 사용되는 모음입니다 의 우리의 FORALL 문을 분석해 보겠습니다 우리의 FORALL 문은 INSERT 만 하나의 DML을 가지고 있으며,이 삽입 DML 문이다 그 값 집합 변수 col_var 통해 수집 my_array 배열을 참조 절 그 말은 모두 규칙은 성취되고 있으며, 우리는 갈 수 있습니다

의는 실행 전에 한 가지 더 해 보자 tut_77 FROM tot_rec INTO SELECT COUNT (*); DBMS_OUTPUTPUT_LINE ( ​​'전체 기록은 삽입 ) '|| tot_rec이다; 그냥 우리의 프로그램이 실행되었는지 확인하기 우리가 예상 한대로 우리는 여기이 두 문장이있다 첫 번째 문을 사용하여 우리는 총 레코드 수는 값을 저장하는 테이블 변수 tot_rec에 tut_77 및 상기 제 2 문장을 사용 출력 문 우리는 사용자 변수 tot_rec에서 그 값을 다시 표시된다 이 DBMS의 OUTPUT 문의 출력이 10 인 경우, 우리는 우리의 프로그램을 가지고 말할 수 있습니다 이 성공적으로 실행되었습니다

우리가로 10 레코드를 삽입하기 위해 FORALL 문을 프로그래밍 한 때문입니다 우리의 표 우리가 방금 만든 것처럼 내가 거기에 기대하고하는 것은 처음이 테이블에 저장된 데이터입니다 그것 그래서이 프로그램을 실행하고 커튼을 올릴 수 있습니다 여기에 우리의 결과이며 다행히도 10입니다 이것은 우리의 기대에 따라 근무 프로그램을 의미한다

"이 프로그램의 모든 실행에 이전에 저장된 데이터에 10 개 개의 레코드를 추가합니다 테이블이 출력 문의 결과에 따라 변경됩니다 " 이 데모는 낮은 함께 FORALL의 개념을 이해하면 도움이 희망과 어퍼는 절을 결합 그래서 다음 버튼을 엄지 손가락을 칠 확인 할 비디오를 좋아한다면 또한 소셜 미디어에 친구와 공유하고있는 경우 채널에 가입 아니 이미 있습니다 이 첫 번째와 PL / SQL FORALL 문을 사용하여 대량의 데이터 처리에 대한 튜토리얼입니다 바운드 절 즉, 낮은 오라클 데이터베이스의 상한

시청 주셔서 감사합니다 이 RebellionRidercom에서 마니이다

PL/SQL tutorial 76: Introduction to FORALL statement in Oracle Database

인터넷 최대 무엇입니까? 나는 RebellionRidercom에서 마니를 생각합니다

그래서 지금 우리가 배운 것을 모든 개체의 정보를 얻기 위해 TAB보기를 사용하는 방법 스키마로 생성하는 것은 이제 다시 우리의 부피에 온 시리즈를 수집하는 방법을 배워 봅시다 FORALL 문을 사용하여 대량의 데이터 처리를 달성한다 그래서 많은 시간을 낭비하지 않고의 벌크에 대한 소개로 시작하자 오라클 데이터베이스에 FORALL 문을 사용하여 데이터 처리 FORALL 문은 DML의 실행 동안 발생하는 콘텍스트 스위치를 줄여 루프에서 문 환언에서는 FORALL 한 DML 실행 벌크 루프 구조라고 말할 수있다 문을 여러 번 한 번에 FORALL 문은 같은 삽입 같은 DML 실행 호출을 전송하여 컨텍스트 스위치를 감소 업데이트를 삭제하거나 일괄 SQL 대신 한 번에 하나씩하는 PL / SQL에서 병합합니다

의는 bound_clause 인덱스 FORALL FORALL 문의 구문을 보자 [SAVE EXCEPTION] DML 문; FORALL 문은 "인덱스"다음에 "FORALL"키워드로 시작합니다 이 지수는 당신이 그것을 정의 할 필요가 없습니다 의미 암시 적으로 정의 된 루프 카운터입니다 그것은 이미 당신을 위해 PL / SQL 엔진에 의해 선언과 그 범위는 FORALL로 제한됩니다 이 정의 된 문 이 인덱스의 값과 루프 반복들의 수는 상기 바인딩에 의존 조항 이것은 우리는 IN 키워드를 작성 후 바로 지정해야합니다

우리는 다시 분이 결합 된 조항에 와서, 그러나 처음의 우리가 무엇을 볼 수있게된다 다음 것 다음으로 우리는 예약 된 문구 SAVE 예외가 있습니다 이 옵션은 DML 문은 예외가 발생하는 경우에도 실행 FORALL 문을 유지합니다 이것은 심지어 갑자기 종료되지 않습니다 FOR LOOP를 통해 FORALL 문의 장점이다 경우 예외가있다 또한 SAVE 예외의 사용은 선택 사항입니다

그러나 그것을 사용하는 것이 좋습니다 저장 예외 다음에 우리는 DML 문이있다 이것은 INSERT, UPDATE 또는 DELETE 또는 MERGE 문 같은 모든 DML 문이 될 수 있습니다 이 DML 또는 문이 VALUES 또는 적어도 하나 명의 컬렉션을 참조 할 필요가 MERGE 절 루프를 들어, FORALL 문으로 우리는 한 번에 하나의 DML을 사용할 수 달리 또한, 기억

이 FORALL의 단점이다 어쨌든, 그 FORALL 문의 구문입니다 이제 우리는 FORALL 문에 대해 사용할 수있는 바인딩 된 조항에 대해 알아 보자 오라클 데이터베이스의 대량 처리 앞서 언급 한 바와 같이를 결정으로, 바운드 절뿐만 아니라 인덱스의 값을 제어 FORALL 문 반복의 수 바운드 조항의 세 가지 유형이 있습니다

1 먼저 낮은 및 상한입니다 : 당신이이이 바운드 절에 FOR LOOP와 유사 유효 시작과 참조의 연속 인덱스 번호의 결말을 지정 수집 인덱스가 숫자 여기에 참조하는 컬렉션이 스파 스 안 있는지 확인합니다 당신의 참조 컬렉션 다음 희박한 경우에 당신은 두 번째 옵션을 사용할 수있는 2입니다 의 지수 : 당신은 스파 스 모음을 참조하고 연속 인덱스가없는 경우 번호는 지정하면 인덱스입니다 번째 바운드 조항의 도움이 걸릴 수 있습니다 의

같은 당신의 스파 스 콜렉션의 첨자 번호를 지정할 수 있습니다 당신의 인덱스를 사용하여 중첩 테이블 또는 연관 어레이 삼 경우 당신은 특정의 매우 구체적인 개별 요소와 함께 FORALL 문을 사용하려면 컬렉션 당신은 값입니다 세 번째 바운드 절을 사용할 수 있습니다 사용 "값-의"바운드 조항이 필요없는 인덱스의 그룹을 지정할 수 있습니다 고유하거나 연속 FORALL 문을 통해 루프를 할 수있는 일 수 있습니다 그들은 당신이 그때 우리가 할 때 모든 의심이 삭제됩니다 걱정하지 마십시오 혼동하는 경우 곧 이러한 언급 바인딩 조항의 각각 FORALL 문 데모 자습서

그래서 가입해야합니다 이 동영상이 마음에 든다면 다음 엄지 손가락을 포기해야합니다 않습니다 또한 소셜 미디어에 친구들이 자습서를 공유 할 수 있습니다 즉 FORALL 문을 사용하여 대량 데이터 처리에 대한 소개에 튜토리얼 오라클 데이터베이스입니다 시청 주셔서 감사합니다

이 RebellionRidercom에서 마니이다