개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 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를 이용하여 다중 행을 검색할 때 많이 사용됩니다.  

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

 

 

 

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

 

 

 

 

  * 칼럼 값을 저장하거나 비교하려고 PL/SQL 변수를 선언할 때, 
   변수의 데이터 타입은 정확해야 합니다.
   그렇지 않으면 실행시에 PL/SQL 오류가 발생합니다.

 

 이 때, %TYPE Attribute를 이용하여 변수의 데이터타입을  
   데이터베이스 컬럼에 맞추어 선언할 수 있습니다.
   이렇게 하려면 변수 선언에 필요한 데이터타입 대신 TABLE이름.COLUMN이름%TYPE으로 지정합니다.  

즉, %TYPE Attribute은 다음과 같은 경우에 사용합니다. 

 

 - 테이블의 칼럼과 똑같은 데이터 타입으로 변수선언시
 사용미리 선언된 변수와 똑같은 데이터 타입으로 변수선언시 사용

-  %TYPE Attribute는 테이블의 칼럼에 대한 데이터 타입을 정확히 모르거나, 칼럼에 대한 데이터 타입이 중간에 변경되는 경우에 유용합니다.

- 컬럼에 정의되어 있는 NOT NULL CONSTRAINT는 %TYPE를 써서 선언된 변수에는 적용되지 않으므로 변수에 NULL값을 지정할 수있습니다. 

 

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

 

 

 

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

 

 

* Scalar 데이터 형태는 1개의 값을 가지며, 숫자, 문자, 날짜 그리고 BOOLEAN 4가지로 나눌 수 있습니다.

 

 

 

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

 

 

 

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

 

 

 

 

 

 

* ​PL/SQL 블럭안에서 변수를 선언하고 참조함으로써 값을 저장하거나 변경할 수 있습니다.

이렇게 PL/SQL 블럭안에서 변수들을 사용하기 위해서는 먼저 DECLARE Section에서 선언을 하여야 합니다.

 

 

 

 

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

 

 

 

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

 

 

 

 

 

[예제4] 앞의 예제3에서 작성한 P_TAX Procedure를 실행하면 다음과 같습니다.

+ Recent posts