행위

PLSQL 변수

DB CAFE

thumb_up 추천메뉴 바로가기


1 PL/SQL 변수[편집]

  • 변수는 반드시 문자로 시작해야함!

1.1 단순 변수[편집]

  • SCALAR 변수
- 데이터 타입을 직접 지정해 주는 변수
- number, varchar2, date 등등 으로 직접 데이터타입을 정해주는 것
  • Reference변수 = 참조변수
- 해당 데이터가 들어있는 칼럼 정보를 참조
  • v_ename emp.ename%type
--> 변수 이름을 v_ename 으로 하되 데이터타입은 emp테이블의 ename 칼럼의 데이터 타입과 동일하게
  • 칼럼이 많지 않을 경우는 위의 방법을 쓰면 되지만 칼럼이 많을 경우는 rowtype 변수를 사용,
  • 하나의 테이블에 여러 칼럼의 값을 한꺼번에 저장할 수 있는 변수
vrow emp%ROWTYPE 
<source>

== 복합 변수 ==
* 변수 하나안에 여러가지 다른 유형의 데이터를 포함
=== Record Type ===
: - 레코드 타입 변수
: 여러개의 컬럼에 여러개의 값을 넣음

* 사용방법:
** DECLARE 에서
<source lang=sql>
TYPE 타입이름(보통 테이블명_record_type) IS RECORD

(타입이름에 들어갈 여러 변수들, 일반 변수 선언과 동일한 문법으로 쓰면 됨) ;

변수이름 타입이름 ;



BEGIN에서

SELECT 출력할 칼럼들 INTO 변수이름 FROM 테이블명 WHERE 조건 ;

1.1.1 Table Type[편집]

- 테이블/ 컬렉션 타입 변수
하나의 칼럼에 데이터가 여러개
하지만 interger라는 칼럼을 만들 수 있는데 관리를 위한 데이터 구분의 역할을 하는 칼럼


  • 사용방법:
DECLARE 에서

TYPE 타입이름(보통 tbl_테이블명) IS TABLE OF

(사용할 변수 설정) ; --> 테이블 타입은 칼럼이 하나기 때문에 변수도 하나

INDEX BY BINARY_INTEGER --> interger 칼럼 만드는 옵션

변수이름 타입이름 ;



BEGIN에서

SELECT 출력할 칼럼들 INTO 다른변수이름 FROM 테이블명 WHERE 조건 ;



변수이름(0) := 다른변수;

--> table type의 변수 1번째 칸에 다른변수 즉, 출력해야 할 칼럼에 대한 내용을 입력하라는 뜻.

문자열 처리방법

https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#sthref344

q'구분자.........구분자'

p_cols=> q''{'||V_INDEX_COLUMNS||'}''