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에서 마니이다

Tutorial to use SMKDAR PIBG Database

좋아 Assalamualaikum 및 액세스 우리 PIBG 데이터베이스에 튜토리얼에 하이 오신 것을 환영합니다 우리는 당신이 볼 수 있듯이 시작하기 전에이 로그인 화면입니다 당신이하지 않은 경우인가 된 자만이 데이터베이스에 액세스 할 수있는 승인 된 인원은 그렇게 변경할 수있는 권한이 없습니다 기본적으로이 상황에서 권한이있는 사용자는 그래서 박사 하와입니다 먼저 자신의 사용자 이름과 암호 를 눌러 로그인 그래서 SMK 다토 아마드 Razali에 타다 오신 것을 환영합니다 PIBG 데이터베이스 홈페이지 당신은 세 가지 옵션이 표시됩니다 당신 로그인 그래서 일단 회원 금융 및 활동 옵션은 회원 옵션은 어디에있는 모든 장소 부모와 교사의 목록은 매년는 기록이 재설정됩니다 금융 옵션 한편이 곳의 수입과 지출 학교가 업데이트되고 마지막 옵션은 모든 활동의 옵션입니다 학교 활동은 그래서는 클릭으로 시작하자 여기에 업데이트됩니다 회원 옵션 당신이 그것을 클릭 한 번 있도록 다른 세 가지 추가 옵션이 표시됩니다 당신이 원하는 경우에 그들은 회원 보고서 옵션 새 멤버 옵션을 선택하고 편집 멤버 옵션입니다 교사 부모의 모든 이름의 목록과 자녀의 이름을 볼 수 있습니다 당신은 구성원에 따라 목록이 정렬되는 옵션을보고 클릭 할 수 있습니다 올해 당신이 상위 계층을 볼 수있는 그 년입니다 먼저 표시되고있다 2,016분의 2,015 매년 것은 조직을 목록으로 분류되어있다 IBD의 구조는 먼저 부모의 목록 이름을 다음과 예 당신은 당신이에 의해 만들 수 있습니다 하드 카피를하는 데 관심 그래서 만약 자녀라는 이 버튼을 클릭 그래서 회원 중에 완료 후보고 그냥 닫기 버튼을 클릭합니다 그래서 새로운 회원이 범위 인형에 참여하는 상황이 될 것입니다 그러므로 기술자가 직접 그냥 새 구성원 옵션을 클릭하고 새로운 멤버에 등록 된 예를 그래서 여기에 특정 데이터에 기입되어 그래서 올해는 2,017분의 2,016 그래서 새로운 멤버의 위치의가 보자입니다 이사와 사람의 이름은 살고 한편 아이의 이름입니다 당신이 땀이 말했다 경우 5-8의 클래스에서 인 동물의 책임이다 당신은 당신이 클릭 할 수 있습니다을 취소 할 경우 정보는 저장 버튼을 클릭합니다 삭제 버튼은 그래서는 정보가 데이터베이스에 있는지 여부를 확인 할 수 있도록 회원이 버튼을보고하고 그 위로는 알리 빈 아부 이름의 이름을 볼 수 있습니다 클릭 그래서 당신이 이동하면 편집 데이터를 편집 할 수 있습니다 새로운 멤버로 당신은 할 것이다 편집 위원과 회원 기록을 클릭 할 수 있습니다 당신이 잘못된 데이터를 편집 할 수 있습니다 나타나는 어느 부분 또한 한 멤버 그것의 모든 정보를 삭제할 수 있습니다 그래서 그것을 클릭의이 금융 옵션을 진행하게하고, 세 가지가있을 것입니다 아름다운 옵션 기적 옵션과 편집 주류 옵션입니다 옵션을 사용하면 경우 목록 보려는 – 학교의 데이터를 당신은 보고서보기를 클릭 할 수 있습니다 옵션은 최고의 데이터는 최고의 데이터가 올해 업데이트로 아래로 나열됩니다 Pinkham 지출로 구성된 아직이 더한 시간 내에 연결되어 있습니다 짐을 부과받을 당신은 또한에 의해 최고의 데이터를 정리 할 수 ​​있습니다 새로운이있는 경우보다 다른이 버튼을 클릭 금융 방식에 대한 요청은 새를 클릭하여 추가 할 수 있습니다 옵션 그래서 여기에 새로운 데이터를 추가하는 예이기 때문에 우리는 현재의 선택 새로운 2,017분의 2,016 당신은 금융 정보가 있는지 여부를 선택할 수 있습니다 소득이나 지출 그래서 세부 사항을 입력하고 한 달 후에 당신은 당신이 할 수있는 델타에 만족하는 경우 저장 버튼을 클릭하고 당신이 그것을하고 싶은 경우는 삭제 버튼을 너무 클릭 할 수 있습니다 이제 정보는 금융 데이터베이스 클릭보기에 있는지 여부를 확인하자 보고서 및 짜잔 정보는 만족이 거기하지 않았다 경우입니다 기존의 금융 데이터는 편집 요청 옵션을 클릭하고 기존 해결 될 수도 있습니다 항목의 재무 데이터의 마지막을 진행 할 수는 제한되어 있으니 저장 활동 옵션 옵션을 클릭하고 세 번째 옵션이있을거야 옵션 새로운 옵션 편집 및 편집 주식 옵션을 추가 블루 당신 경우 학교의 당신이 클릭 할 수 있습니다보기의 활동의 목록을 보려는 옵션 활동은 경제 네 개의 범주로 구분되고있다 이 목록 A에 대한 학생들의 업무 및 기타 프로그램 관리자의 이름 구성 지출의 양이 또한 발생하는 DVD를 각 담당 누구 이 목록에 당신은 또한 인쇄 할 수 있으며,이를 클릭하여 하드 카피가 단추 다른 학교 활동에 새로운 기록이 있다면 당신은에 의해 편집 할 수있는보다 새로운 데이터를 추가하는, 그래서 여기에 이러한 옵션을 예있는 새로운 편집을 클릭 우리는 단지 현재 연도 2,017분의 2,016 특정 독특한를 선택하고 기입 할 수있다 데이터와 사이에 당신은 또한 프로그램 내에서 숙박 할 수 있습니다 증가 관리자의 이름은 참여 당신이 Amiata을 위해 보는 경우에 당신이 여자를 원하는 경우 저장 버튼을 클릭 할 수 있습니다 삭제 버튼을 클릭 할 수 있습니다 그래서이 정보가 있는지 여부를 확인하자 당신이하지 않은 경우 새로운 정보 짜잔 활동 데이터베이스있다 증권 거래위원회 (SEC)에 만족하고이 데이터에 우리가 모든 레코드 옵션을 클릭 할 수 있으며 기존 DVD의 데이터를 수정하면 수도 안전 또는 유죄 중 그래서 모든 시계 모니터를 단순화 할 수있는 전체 시스템은 기본적으로이 학교와 PID G이 시스템에 의해 수행 모든 활동은 데이터를 관리 효율적이고 사용자가 공간이 우리가 영감이다 여러 작업을 수행 할 수 미니멀 한 스타일로 동료가 사용하는 개념에서이 기준을 만들 아름다운 인터페이스 컴퓨팅 및 아사나 친절이 시스템 사용자는 오 환영합니다 그래 시스템에서 잠글 것을 잊지 않도록 아무 권한이없는 사람 없다 다시 시스템에 soleimani를 해킹 할 수 당신

Android Tutorial (Kotlin) – 31 – Read Delete and update SQlite Database Records

안녕 모두, 이 CodeAndroid에서 인 Vignesh입니다 지난 튜토리얼에서 우리는 SQLite 데이터베이스를 만들었습니다 우리는 삽입했다 이 비디오에서 볼 수 있습니다, 어떻게 레코드를 읽고, 삭제하고 업데이트합니다 DB를 (데이터베이스)에서 있는 LinearLayout 추가 삽입 양식의 레이아웃 아래 작업을 할 우리는 3 버튼이 필요 그래서 3로 "weightSum"로 설정 "match_parent"로 폭의 버튼을 추가 높이 "wrap_content"로 "1"로 가중치를 할당 와 같은 ID 설정 "btn_read" "읽기"로 설정 텍스트 키보드의 코드를 눌러 "CTRL + D"를 선택 ID를 변경하는 것 "btn_update" 그리고 "업데이트"와 같은 텍스트 ID를 변경하는 것 "btn_update" 및 "삭제"와 같은 텍스트입니다

우리는있는 LinearLayout에 대한 3로 "weightSum"가 내부 버튼 1로 가중치가있는 그래서 모든 버튼은 동일한 폭을 얻을 것이다 결과를 표시합니다 있는 ScrollView를 추가 "match_parent"로 "match_parent"및 높이와 폭 제어 버튼 레이아웃에서 유지 텍스트 뷰 내부 와 "tvResult"로 지정 개방 데이터베이스 핸들러 파일 함수를 작성되는 readData 이는 "사용자"개체의 MutableList를 반환합니다 MutableList를 레이팅하고 목록을 반환 우리는 ArrayList를 사용하여 목록을 초기화 할 필요가 여기에 우리는 DB의 데이터 (데이터베이스)를 읽으려고하고있다 그래서 reableDatabase을 받고 우리가 사용하는 데 필요한 모든 데이터를 얻을 수 있습니다 쿼리로 "이 SELECT * FROM tablename" 우리는 rawQuery를 사용하여 쿼리를 실행하는 경우 우리는 커서 객체를 얻을 것이다 이것은 DB에서 읽은 모든 데이터의를해야합니다 우리는 () 커서 및 데이터베이스 사용하여 주변을 닫아야합니다 그 사이에, 우리는 커서에서 모든 데이터의 읽기해야합니다 moveToFirst ()가 반환합니다 "true"로 커서가 null이 아니고이어야 하나 개의 값이있는 경우

에서는 dowhile 루프를 사용하여 내부에서 우리는 값을 읽을 필요가있다 내부 루프는 사용자 객체를 생성 우리는 빈 생성자가 없습니다 그래서를 작성 우리는 1 열로 ID를 가지고 그러나 지수는 0에서 시작됩니다 그래서 ID를 0으로 인덱스를 제공 문자열을 변환하는 단계) (toInt를 사용하여 정수로 유사 이름과 나이를 설정 인덱스 1과 2에서

우리는 적절한 인덱스를 모르는 경우 우리는 방법을 사용하여 인덱스를 얻을 수 있습니다 columnName를 전달하여 getColumnIndex 이 방법으로 인덱스를 교체 추가 사용하여 목록에 사용자 개체를 추가합니다 () 열린 MainActivitykt btn_read에 대한 OnClickListener를 설정 우리가 DatabaseHandler의 객체가 필요)되어, readData를 (호출 그래서 최상위 수준이 이동 ()를 호출되어, readData 핸들러 객체를 사용 빈 첫째로 결과 텍스트를 설정

이제 루프를 사용하여 데이터를 루핑 및 tvResult 텍스트 뷰에 객체를 추가 루프에서는 0을 반복 할 필요가 (크기 -1) 의 응용 프로그램을 실행하자 우리는 텍스트 뷰에 데이터를 얻고있다 사용자 속성 사이에 공백을 추가 함수를 생성 deleteDate writableDatabase를 가져오고 DB 연결을 닫는 우리가 호출 할 필요가 기록을 삭제하려면 연결 개체에 () 삭제 여기에 우리는 3 개 개의 매개 변수를 전달해야 TABLENAME, whereclass 및 값 "COL_ID"1 등으로 행을 삭제 우리는 여러 레코드를 삭제하려면 우리는) (arrayOf 내부의 모든 ID의의를 통과해야 )합니다 (중복되는 readData , 반환 형식 및 제거 목록 또한 writableDatabase를 얻을 수 이 메서드를 호출에, 우리는 1 세를 증가거야 그래서 우리는 모든 데이터를 읽을 필요, 대신의 목록에 추가 우리는 나이를 업데이트해야 db

update () 우리는 4 개 매개 변수를 전달해야하는 내부 TABLENAME, contentValues, whereClass 가치 [] 나이와 contentValues를 작성 여기에 이력서를 전달합니다 여기에 내가 ID와 이름과 일치하고있다 ID와 이름 값을 전달합니다 btn_update에 대한 OnClickListener를 설정 및 () 때문에 updateData를 호출 또한 프로그래밍 btn_read 버튼을 클릭 마찬가지로 btn_delete에 대한 OnClickListener를 설정 등) (deleteData를 호출 또한 프로그래밍 btn_read 버튼을 클릭 의 코드를 실행하자

새 행을 삽입 클릭 "읽기" 결과는 데이터를 받고있다 일어나고 업데이트 아무것도 클릭 미안 해요, 난 값을 증가하는 것을 잊었다 의 코드를 실행하자 당신은 업데이트의 클릭에 볼 수 있습니다 모든 기록의 나이가 1 씩 증가 삭제의 onclick을 1과 ID가 기록 제거 우리가 통과하는 데 필요한 모든 기록을 삭제하려면 whereClass 같은 널 및 널 값 [] 의 코드를 실행하자 삭제 버튼의 클릭에 모든 레코드가 제거됩니다 클릭 확인 "읽기" 아무것도 일어나고 모든 기록은 DB에서 제거되기 때문에 즉,이 튜토리얼들에 대한 모든입니다 이 동영상이 마음 엄지 손가락을주십시오 당신이 의심이있는 경우, 코멘트 섹션에 넣어주세요, 나는 그것을 대답하려고합니다 당신은에 어떤 튜토리얼이 필요 또한이 "안드로이드" 내가 코멘트 섹션에 알려 나는 그렇게하려고합니다 너가 좋아하길 바래 나는 나의 다음 비디오에서 당신을 볼 것이다 좋은 하루 되세요"

Android Tutorial (Kotlin) – 30 – SQLite Database Creation and Insertion

안녕 모두, 이 CodeAndroid에서 인 Vignesh입니다 이 비디오에 대해 볼 수 있습니다 SQLite 데이터베이스 만들기 및 삽입 우리는 거대한 데이터를 저장하려면 우리는 어떤 검색을 할 필요가 또는 우리는 SQLite 데이터베이스를 사용할 필요가 단락 안드로이드는 기본적으로 SQLite 데이터베이스를 지원합니다 이것을 사용하기 위해 우리는 다른 라이브러리를 추가 할 필요가 없습니다 이를 증명하기 위해, 나는 새로운 응용 프로그램을 작성하고 즉 SqliteExample 기본 구성 이 예에서, 나는에 이름과 나이를 저장하기 위하여려고하고있다 SQLite 데이터베이스 열기 "activity_mainxml" 있는 LinearLayout에 대한 루트 레이아웃으로 변경 수직으로 방향을 추가 루트 레이아웃 안에 뷰를 제거 또 하나의 LinearLayout 만들기 내부 "wrap_content"로 "match_parent"및 높이와 폭 이름에 대한 글고 추가 마진과 패딩 10dp와 "etvName"로 ID를 할당 글고 치기를 복제 코드 및 보도를 선택하여 키보드에서 CTRL + d를 LinearLayout을 수직 방향으로 추가 etvAge으로서 제 2의 EditText ID를 변경 나이는 숫자 여야합니다 그래서 숫자로 inputType 설정 , A 버튼을 추가 이것의 클릭에 있도록, 우리는 데이터베이스에 입력 된 데이터를 삽입 할 수 있습니다 설정 마진과 패딩 10dp "btn_insert"등의 삽입으로 텍스트와 할당 ID 새로운 코 틀린 파일 만들기 사용자 개체의 구조를 정의하는 클래스 사용자 ID, 이름과 나이 속성을 추가 매개 변수와 같은 이름을 가진 생성자와 시대를 만들 우리는 단일 라인 자체에서 사용자 개체를 만들 수 있도록 속성 값과 같은 파라미터를 설정할 데이터베이스 작업을 처리하기 위해, 우리는 핸들러 클래스가 필요 그래서 코 틀린 파일을 만듭니다 우리는 같은 몇 가지 값이 필요합니다 데이터베이스 이름, 테이블 이름, 열 이름 등 이들 변수를 작성

파일 이름과 동일 핸들러 클래스 만들기 파라미터로서 컨텍스트 그리고, 그것은 SQLiteOpenHelper 클래스를 확장 우리는 4 개 매개 변수를 전달해야하는 내부 문맥, 데이터베이스 이름, CursorFactory 및 데이터베이스 버전 우리는 CursorFactory를 사용하지 않을 그래서 널 여기 전달합니다 1로 버전을주기 우리는 ()에서 onCreate를 구현해야 및 기본 클래스에서 onUpgrade () 이에서 onCreate ()가 실행됩니다 장치는 데이터베이스를 포함하지 않는 경우 그래서 우리는 여기에 필요한 테이블을 작성해야 여기에 나는 필드와 ID, 이름, 나이 테이블을 만드는 오전 우리가에는 ExecSQL를 사용할 필요가 쿼리를 실행하기 위해 () 우리는 쿼리 문자열을 전달해야 내부 onUpgrade ()가 실행되며, 우리는 데이터베이스의 이전 버전이있는 경우 당신은 oldVersion 및 CurrentVersion을 얻을 것이다 이 방법 자체 이 사용하는 우리는 그에 따라 테이블 구조를 업그레이드해야 함수 insertData () 사용자 개체를 삽입 할 만들기 의 SQLiteDatabase 객체의 두 가지 유형이있다가 있습니다 있습니다, 1ReadableDatabase 2WritableDatabase 여기에서 우리는 데이터베이스에 데이터를 쓰기 위하여려고하고있다 그래서 WritableDatabse를 얻을 수 데이터베이스에 삽입하려면 우리는 ConventValues ​​필요 그래서, ConventValues를 만들 우리는 우리의 가치를 둘 필요가 내부 cv

put "COL_NAME"username 저장해야합니다 cvput "COL_AGE"userage 저장해야합니다 이제 우리는이 ConventValues을 삽입해야 dbinsert () 우리는 3 개 개의 매개 변수를 전달해야 내부 TABLE_NAME, 널 (null) 및 ConventValues 두 번째 매개 변수는 문자열입니다 우리는 여기서 어떤 열 이름을 통과해야 그래야 "NULL"해당 컬럼에 저장됩니다 우리는 어떤 널 열 필요가 없습니다 그래서 우리는 두 번째 매개 변수로 null을 전달하는 이 삽입 () ROWID를 반환합니다 결과가 -1 다음 일부 오류가 발생한다 그래서 토스트를 보여주는 "실패"로 그렇지 않으면 "성공"으로 토스트를 보여주는 열기 "MainActivity

kt" "btn_insert"을위한 온 클릭 리스너를 설정 이름과 나이 길이> 0 인 경우 우리는 데이터베이스에 데이터를 삽입해야 그렇지 않으면 오류 토스트를 보여주는 그렇지 않으면 오류 토스트를 보여주는 생성자 내부에 입력 된 값을 전달하여 및 "사용자"라는 변수로 저장 헬퍼 클래스의 객체를 생성 사용하여 우리가 초기에 생성이 호출 insertData () 의 응용 프로그램을 실행하자 데이터를 입력 우리가 "성공"으로 축배를 얻고있다 "삽입"버튼을 클릭 어떤 데이터가 성공적으로 삽입 의미 다음 튜토리얼에서 검색하는 방법을 볼 수 있습니다 업데이트 및 데이터베이스에서 레코드를 삭제 즉,이 튜토리얼들에 대한 모든입니다 당신이 비디오를 좋아하는 경우에, 엄지 손가락주세요 당신이 의심이있는 경우, 주석 섹션에 넣어주십시오 나는 그것을 대답하려고합니다 너가 좋아하길 바래 나는 나의 다음 비디오에서 당신을 볼 것이다 좋은 하루 되세요"

PL/SQL tutorial 73: Bulk Collect with SELECT-INTO statement in Oracle Database

인터넷 최대 무엇입니까? 내가 RebellionRidercom에서 마니 오전 다시 한번 환영합니다

우리가 대량으로 도입 완료 이제 그것은 조치를 취할 시간이다, 수집 앞서 및 PL / SQL 일괄 오라클에서 SELECT-INTO 문 절을 수집 사용하는 방법 데이터 베이스 지금까지 우리는 대량 모두에 의한 오버 헤드를 줄일 수에 관한 수집 사실을 알게 컨텍스트는 쿼리의 효율성을 높이기 위해 전환됩니다 의 그 말은 무엇을 이해하려고 노력하자 [코드 1] 여기서 우리는 PL / SQL 프로그램을 가지고있다 이 프로그램의 실행 섹션은 SQL 작업을하고 SQL 작업 구성 SELECT 문입니다

이 SELECT 문은 열 "이름"의 모든 데이터를 검색한다 직원 테이블과 우리가 선언 절에서 만든 컬렉션으로 저장 같은 프로그램의 내 경우에는 직원 테이블 (107 개) 기록이있다 그것은 귀하의 경우 다를 수 있습니다 우리는이 프로그램을 실행할 때 PL / SQL 런타임 엔진은 모든 PL / SQL 문을 실행합니다 그러나 어떤 SQL 작업을 건너 것 즉시로는로 제어를 전송합니다 는 SQL 런타임 엔진

SQL 엔진은 명령문을 처리하고 다시 PL / SQL 엔진에 결과를 반환합니다 우리의 경우 SQL 작업은 모두 처음 검색하는 SELECT 문입니다 직원 테이블의 이름 앞서 언급 한 바와 같이 수단 내 직원 테이블에 총 107 개 기록이있다 제어는 SQL에서 SQL 엔진에 PL / SQL 엔진에서 107 번, 107 번 이동합니다 PL / SQL 엔진에 엔진 총 PL / SQL 및 SQL 런타임 엔진 사이 (214 개) 제어 점프가있을 것입니다 우리가 이전 튜토리얼에서 컨트롤의 더 높은 도약을 배운 것처럼, 더는 것 결과적으로 성능이 저하됩니다 오버 헤드합니다

이것은 우리가 사이에 그 제어 점프를 줄일 수있는 옵션을 찾을 필요가 있다는 것을 의미 엔진 그 옵션은 대량 수집 절입니다 대량 수집 절은 하나의 컨텍스트 스위치에 다수의 스위치를 압축하는 차례로 쿼리의 성능을 향상시킵니다 그럼 앞으로 이동하고이 코드를 수정할 수 및 대량으로 절을 수집 사용하는 방법 SELECT-INTO 문 그 한 가지 내가 분명히하자 전에이 실행에 올릴 더미 코드는 우리가 같은 오류 우리는 SQL 문을 사용하여 로컬로 만든 모음을 사용할 수 없기 때문에 여기서 뭐

난 그냥 당신이 모든 컨텍스트 전환이 무엇을 이해하고 어떻게 작동하는지 확인하기 위해이 코드를 사용했습니다? 이제 우리는이 코드를 수정하고이 일을 너무 BULK로 절을 수집 있는지 확인합니다 그걸하자 SERVEROUTPUT ON은 SET; 알리다 TYPE OF VARCHAR2 nt_fName가 테이블 (20); FNAME nt_fName; SELECT FIRST_NAME의 BULK은 INTO FNAME를 수집 BEGIN 직원 FROM; 종료; / 여기에 우리가 완전히뿐만 아니라 수정 최적화 된 PL / SQL 벌크 코드를 수집합니다 또한, 당신은 작동이 시간을 것을 확신합니다 그러나 전에 그것을 실행

의 처음 우리가 여기서 무슨 짓을했는지 보자 선언 부분은 여전히 ​​동일합니다 그것은 단지 로컬 PL / SQL의 중첩 테이블은 수집과 대응 포함 우리의 중첩 된 테이블 형식의 컬렉션 변수입니다 당신은 PL / SQL 중첩 테이블로 작업하는 방법을 알아 내 PL / SQL 자습서 (51)을 참조 할 수 있습니다 오라클 데이터베이스입니다 모든 링크는 설명에 있습니다

그럼 우리가 실행 섹션이 있습니다 이 섹션의 내부에서 우리는 SELECT-INTO 문을 가지고있다 이 문장은 다시의 이름 열에서 모든 레코드를 검색한다 직원 테이블 그러나 키워드 INTO 우리가 "대량 수집"절을 지정한 직전에이 시간; 이는 완전히 여기에 게임을 변경합니다 이 단일 조항 만이 코드의 전체 실행 프로세스를 변경합니다

여러분에게 그 방법을 말씀 드리겠습니다 이 프로그램의 실행에 PL / SQL 엔진은 SQL 작업을 통해 올 때, 그것을 의지 클럽 모두 107 컨텍스트는 하나 개의 컨텍스트 스위치로 스위치와 함께 보내 하나의 SQL 엔진이 이동하려면, 대신에 SQL에 개별적으로 전송 엔진과 그 반대 그것은이 시간 대신 (214 개) 스위치 우리는이 컨텍스트 스위치가됩니다 것을 의미합니다 SQL에 PL / SQL에서 하나와 PL / SQL 엔진에 SQL에서 하나 그리고 강력한 대량으로 모든 덕분에 절을 수집합니다

이 SELECT-INTO 문이 인출 된 데이터를 인쇄 할의도 루프를 추가하자 직원 테이블 및 수집 nt_fName에 저장 그래서 우리는 우리가 테이블에서 검색 한 레코드 수를 볼 수 있습니다 1fName

count 루프에서 IDX에 대한 DBMS_OUTPUTPUT_LINE (IDX || ' – '|| FNAME (IDX)); END LOOP; 여기에서 우리는 우리가 단지에 가져온 모든 요소를 ​​인쇄됩니다 우리 FOR 루프를 컬렉션 이제이 코드를 실행하고 결과를 볼 수 있습니다 하지만 그 전에 내가 그 엄지 손가락 치고 물어 빠른 초 할게요 버튼 이 비디오처럼 이상과 같은 흥미로운 튜토리얼을 만들기위한 내게 동기를 유지처럼 매일

또한 많은 같은 동영상이 와서 아직 가입해야합니다 않습니다 즉 이제 가서이 PL / SQL 프로그램을 실행하게 말했다되고 여기에 우리의 결과입니다 당신이 볼 수 있듯이 우리는 성공적으로 직원 테이블에서 (107 개) 기록을 검색했다 우리는 강한 우리에게주는 커서의 도움으로이 코드 미세 조정을 촉진 할 수 우리의 쿼리를 제어 할 수 있습니다

우리는 다음 튜토리얼에서 다룰 것이다 그래서 우리는 BULK는 PL / SQL 수거를 사용하는 방법을 배우게됩니다 다음 튜토리얼에서와 같이, 계속 지켜봐 주시기 바랍니다 쿼리의 성능을 최적화하기 위해 커서 즉 오늘은 여기까지 희망이 튜토리얼은 컨텍스트 스위치가 발생하는 방법을 배우는 당신을 돕고 무엇이 그들의입니다 쿼리의 성능에 미치는 영향 또한, 우리는 BULK를 사용할 수있는 방법 컨텍스트 스위치에 의한 오버 헤드를 극복하기 위해 COLLECT 과 PL / SQL 쿼리의 성능을 향상시킬 수 있습니다

이것은 SELECT INTO 문을 대량 수집 조항에 대한 튜토리얼입니다 시청 주셔서 감사합니다 이 RebellionRidercom에서 마니이다