개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 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 데이터 타입을 선언하고, 해당 데이터 타입을 갖는 변수를 선언합니다.

 

 

 

 

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

 

 

 

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

 

 

 * 데이터베이스의 테이블이나 View의 컬럼들로 구성된 Record를 선언할 때 %ROWTYPE Attribute를 이용하면, Record 내의 Field는 테이블이나 View의 컬럼명과 데이터 타입을 그대로 가져옵니다.
%ROWTYPE를 이용하는 방법은 데이터 타입 지정 시 테이블명%ROWTYPE 형식으로 지정하면 됩니다.

 

%ROWTYPE Attribute 역시 테이블의 칼럼에 대한 데이타타입을 정확히 모르거나, 칼럼에 대한 데이터 타입이 중간에 변경되는 경우에 유용합니다. 이 타입은 SELECT 구문으로 하나의 행을 검색하거나 Explicit Cursor를 이용하여 다중 행을 검색할 때 많이 사용됩니다.  

+ Recent posts