728x90
%TYPE
%TYPE 데이터형은 기술한 데이터베이스 테이블의 컬럼 데이터 타입을 모를 경우 사용할 수 있고,
또. 코딩이후 데이터베이스 컬럼의 데이터 타입이 변경될 경우 다시 수정할 필요가 없습니다.
이미 선언된 다른 변수나 데이터베이스 컬럼의 데이터 타입을 이용하여 선언합니다.
데이터 베이스 테이블과 컬럼 그리고 이미 선언한 변수명이 %TYPE앞에 올수 있습니다.
%TYPE 속성을 이용하여 얻을 수 있는 장점 :
- 기술한 DB column definition을 정확히 알지 못하는 경우에 사용할 수 있다.
- 기술한 DB column definition이 변경 되어도 다시 PL/SQL을 고칠 필요가 없다.
%TYPE 예제:
CREATE TABLE table_name (
id NUMBER,
name VARCHAR2(255)
);
DECLARE
v_name VARCHAR2(255);
BEGIN
v_name := table_name.name;
DBMS_OUTPUT.PUT_LINE(v_name);
END;
%ROWTYPE
하나 이상의 데이터값을 갖는 데이터 타입으로 배열과 비슷한 역할을 하고 재사용이 가능합니다.
%ROWTYPE데이터 형과, PL/SQL테이블과 레코드가 복합 데이터 타입에 속합니다.
%ROWTYPE
- 테이블이나 뷰 내부의 컬럼 데이터형, 크기, 속석등을 그대로 사용할수 있습니다.
- %ROWTYPE 앞에 오는 것은 데이터 베이스 테이블 이름입니다.
- 지정된 테이블의 구조와 동일한 구조를 갖는 변수를 선언할수 있습니다.
- 데이터베이스 컬럼들의 수나 DATATYPE을 알지 못할 때 편리 합니다.
- 테이블의 데이터 컬럼의 DATATYPE이 변경될 경우 프로그램을 재수정할 필요가 없습니다.
%ROWTYPE 예제:
CREATE TABLE table_name (
id NUMBER,
name VARCHAR2(255)
);
DECLARE
CURSOR c1 IS
SELECT * FROM table_name;
v_row table_name%ROWTYPE;
BEGIN
FOR i IN c1 LOOP
DBMS_OUTPUT.PUT_LINE(v_row.id || ' ' || v_row.name);
END LOOP;
END;
테이블 의 모든 행에 대한 id및 열의 값을 인쇄합니다 .nametable_name
출처: https://psh85a.tistory.com/entry/oracle-TYPE%EA%B3%BC-ROWTYPE
728x90
'STUDY > DB SQL' 카테고리의 다른 글
[Oracle] SQL Developer DBMS 출력 (0) | 2023.06.26 |
---|---|
[SQL] 오라클 문자열 합치기 CONCAT 과 || (0) | 2023.06.26 |
[SQL] 오라클 TRIM함수 (0) | 2023.06.26 |
[SQL] 오라클 LISTAGG함수 (0) | 2023.06.26 |
[SQL] 오라클 시퀀스(SEQUENCE) 사용법 (0) | 2023.06.26 |