행위

"PLSQL 변수"의 두 판 사이의 차이

DB CAFE

123번째 줄: 123번째 줄:
 
p_cols=> q''{'||V_INDEX_COLUMNS||'}''  
 
p_cols=> q''{'||V_INDEX_COLUMNS||'}''  
 
</source>
 
</source>
 +
 +
[[Category:oracle]]

2019년 12월 19일 (목) 12:19 판

thumb_up 추천메뉴 바로가기


PL/SQL 변수


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


1. 단순 변수


1) SCALAR 변수

데이터 타입을 직접 지정해 주는 변수

number, varchar2, date 등등 으로 직접 데이터타입을 정해주는 것


2) Reference변수 = 참조변수

해당 데이터가 들어있는 칼럼 정보를 참조


v_ename emp.ename%type --> 변수 이름을 v_ename 으로 하되 데이터타입은 emp테이블의 ename 칼럼의 데이터 타입과 동일하게


칼럼이 많지 않을 경우는 위의 방법을 쓰면 되지만

칼럼이 많을 경우는 rowtype 변수를 사용,

하나의 테이블에 여러 칼럼의 값을 한꺼번에 저장할 수 있는 변수


vrow emp%ROWTYPE




2. 복합 변수

변수 하나안에 여러가지 다른 유형의 데이터를 포함


1) Record Type - 레코드 타입 변수

여러개의 컬럼에 여러개의 값을 넣엄


사용방법:

DECLARE 에서

TYPE 타입이름(보통 테이블명_record_type) IS RECORD

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

변수이름 타입이름 ;


BEGIN에서

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





2) 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||'}''