개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

*  LOOP문의종류 : BASIC LOOP문, FOR LOOP문, WHILE LOOP문

 

 

LOOP와 END LOOP 사이에 반복되는 문장들로 이루어져 있습니다. 문장들의 흐름이 END LOOP에 도달하면 그와 짝을 이루는 LOOP문으로 제어가 돌아갑니다. 이러한 LOOP를 무한 LOOP라 하며 , 여기서 빠져나가려면 EXIT 문을 사용합니다. EXIT문을 이용하면 END LOOP다음문으로 제어를 보내므로 LOOP를 종료할 수 있습니다. 조건에 따라 LOOP를 종료할 수 있도록 WHEN절을 기술합니다.

FOR LOOP는 PL/SQL이 수행할 반복횟수를 정하기 위해 LOOP 앞에 제어문을 갖습니다.
FOR LOOP문에서 사용된 인덱스는 정수로 자동 선언되므로 따로 선언할 필요가 없고, 상한에 도달할 때까지 루프를 반복할 때마다 자동적으로 1씩 증가합니다.
REVERSE 는 상한에서 하한으로 감소하게 해줍니다.

FOR LOOP는 자동으로 값을 1만큼씩 감소시키거나 증가시킵니다. 증감이 1인 일련번호에 대하여 반복처리를 하는 경우에 아주 유용하게 이용할 수 있습니다.
그러나 증감이 1이 아니라면 WHILE LOOP나 BASIC LOOP를 이용하여 증감치를 지정하여야 합니다.

 

제어조건이 True인 동안만 문장을 반복하게 하려면 WHILE LOOP를 사용합니다. 매번 반복되는 첫 문장에서 조건을 평가하여 조건이 False가 되면 LOOP를 종료합니다. 처음 시작에서 조건이 False이면 LOOP문 안으로 들어오지 못하고 LOOP를 종료합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

- 여러 개의 ELSIF절은 쓸 수 있지만, ELSE절은 한번만 씁니다.

 

 

- IF THEN ELSE문

조건이 True이면 THEN 이하의 문장을 실행하고, 조건이 False나 NULL이면 ELSE 이하의 문장을 실행한 후, 어느 경우에나 END IF 다음의 문장으로 넘어갑니다.

 

 

 

 

 

 

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

SELECT절에 있는 칼럼수와 INTO절의 변수 개수가 같고 데이터 타입이 같아야 하므로 %TYPE Attribute를 사용하면 좋습니다. SELECT문은 INTO절에 의해 조건을 만족하는 Row를 한 개만 저장할 수 있습니다.
그러므로 조건을 만족하는 Row가 한 개도 없거나 여러 개가 있으면 에러를 발생합니다. 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

* DML문인 경우는 SQL의 문법과 동일하게 사용합니다.
또한 UPDATE문이나 DELETE문은 조건을 만족하는 행이 여러 개이면 전체에 대해서 처리하고, 조건을 만족하는 행이 없더라도 에러가 발생되지 않습니다.

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

변수에 값을 정의하거나 재정의하기 위해 PL/SQL 할당 연산(:=)를 사용합니다. 할당 연산자 왼쪽에 변수를 놓고 오른쪽에 값을 놓습니다.

 

 

변수에 상수값 지정

TAL_SAL 변수에 V_SAL 변수값 정의 
v_total_sal    := v_sal ; 
예제5에서 선언한 TABLE 3번째 변수에 이은선값 정의 
name_table(3)  := '이은선' ;
 
예제6에서 선언한 TABLE의 25번째 사원의 이름과 급여 정의 
emp_table(25).name = '이용호' ; emp_table(25).salary  = 1100 ;

 

 

 

PL/SQL에서는 SQL에서 사용되는 논리, 산술, 연결 연산자와 추가된 지수연산자(**)를 사용할 수 있습니다.
괄호를 사용하여 연산순서를 조정할 수 있습니다.

 변수의 값을 1 증가하시오. 
 v_count := v_count + 1;

 두 변수의 값이 같은 지를 비교하여 BOOLEAN 값 지정 
 v_equal := (v_n1 = v_n2);

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

PL/SQL에서 제공하는 Composite Type은 TABLE과 RECORD가 있습니다.

 

- TABLE Type

 

  TABLE 타입은 C의 배열(Array)와 유사하며, 데이터베이스내의 테이블과는 다르고 1차원 배열과 유사합니다. 배열의 크기는 정해져 있지 않으므로 동적으로 커질 수 있습니다. TABLE 타입은 TABLE을 색인하는데 사용되는 BINARY_INTEGER 데이터 타입의 Primary Key와 TABLE 요소를 저장하는 Scalar 데이터 타입의 두 가지 구성요소를 갖고 있어야 합니다. PL/SQL TABLE을 선언하는 순서는 먼저 TABLE 데이터 타입을 선언하고, 그 다음 해당 데이터 타입을 갖는 변수를 선언합니다.

 

 

 

 

 

* RECORD Type

 

      PL/SQL RECORD 데이터 타입은 데이터베이스의 테이블 Row와는 다르고, 3GL의구조체(Structure)와 유사합니다. PL/SQL RECORD는 Scalar, PL/SQL RECORD, PL/SQL TABLE 데이터 타입 중 하나 이상의 요소를 갖고 있어야 하며, 다른 데이터타입을 가질 수 있습니다.
     또한, Field들의 집합을 하나의 논리적 단위로 처리할 수 있게 해줌으로 테이블의 Row를 읽어 올 때 편합니다.
      PL/SQL Record를 선언하는 순서는 먼저 Record 데이터 타입을 선언하고, 해당 데이터 타입을 갖는 변수를 선언합니다.

 

 

 

 

+ Recent posts