다른 명령
PL/SQL 변수
- 변수는 반드시 문자로 시작해야함!
단순 변수
- SCALAR 변수
- - 데이터 타입을 직접 지정해 주는 변수
- - number, varchar2, date 등등 으로 직접 데이터타입을 정해주는 것
- Reference변수 = 참조변수
- - 해당 데이터가 들어있는 칼럼 정보를 참조
- v_ename emp.ename%type
- --> 변수 이름을 v_ename 으로 하되 데이터타입은 emp테이블의 ename 칼럼의 데이터 타입과 동일하게
- 칼럼이 많지 않을 경우는 위의 방법을 쓰면 되지만 칼럼이 많을 경우는 rowtype 변수를 사용,
- 하나의 테이블에 여러 칼럼의 값을 한꺼번에 저장할 수 있는 변수
vrow emp%ROWTYPE
복합 변수
- 변수 하나안에 여러가지 다른 유형의 데이터를 포함
Record Type
- - 레코드 타입 변수
- 여러개의 컬럼에 여러개의 값을 넣음
- 사용방법:
- DECLARE 에서
TYPE 타입이름(보통 테이블명_record_type) IS RECORD (타입이름에 들어갈 여러 변수들, 일반 변수 선언과 동일한 문법으로 쓰면 됨) ; 변수이름 타입이름 ; BEGIN에서 SELECT 출력할 칼럼들 INTO 변수이름 FROM 테이블명 WHERE 조건 ;
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||'}''