Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- avax.net.ssl.SSLHandshakeException:
- 프로토타입 모형
- 디미터 법칙
- table scan
- 변수명 짓는법
- springboot
- SQLRecoverableException
- OpenAPI
- 인증서만료에러
- CSS
- 클린코드
- 스크럼기법
- pl/sql
- 시스템 파악 정리
- Bandit Level 6
- Bandit Level 6 → Level 7
- vue
- 명령어공부
- mysql 튜닝
- 나선형 모형
- 시스템 파악
- 폭포수 모형
- java.sql.SQLRecoverableException
- 커맨드공부
- plsql
- Law of Demeter
- Bandit Level 5
- was버그
- was SQLRecoverableException
- 에자일 모형
Archives
- Today
- Total
개발햄비
[DB]PL/SQL 프로시저 기초-기본 문법 3정리(%rowtype) 본문
%ROWTYPE
- 테이블이나 뷰 내부의 컬럼 데이터 형 , 크기 , 속성을 그대로 사용할 수 있다.
- 테이블이름%ROWTYPE ; 으로 사용
- 지정된 테이블의 구조와 같은 변수 구조를 선언 할 수 있다.
- DB컬럼의 데이터타입, 컬럼의 수 등등 알기 어려울 때 쓰면 편하다
- 테이블의 컬럼이 변경돼도 수정할 필요 없다.
%ROWTYPE 예제
create or replace PROCEDURE ROW_TYPE_TEST
IS
test_emp emp%ROWTYPE;
BEGIN
SELECT empno, ename, sal
INTO test_emp.empno, test_emp.ename, test_emp.sal
FROM emp
WHERE empno = 7369;
DBMS_OUTPUT.PUT_LINE('empno: ' || test_emp.empno);
DBMS_OUTPUT.PUT_LINE('ename: ' || test_emp.ename);
DBMS_OUTPUT.PUT_LINE('sal: ' || test_emp.sal);
END;
---=----출력---------
empno: 7369
ename: SMITH
sal: 800
Table 문법
--예제
TYPE emp_Table IS TABLE OF VARCHAR(30)
INDEX OF BINATY_INTEGER;
--emp_Table 테이블 타입 -> emp_Table_li 변수에 넣기
emp_Table_li emp_Table
Table 예제
create or replace PROCEDURE table_TEST
IS
TYPE empno_table IS TABLE OF emp.empno%TYPE
INDEX BY BINARY_INTEGER;
TYPE ename_table IS TABLE OF emp.ename%TYPE
INDEX BY BINARY_INTEGER;
TYPE sal_table IS TABLE OF emp.sal%TYPE
INDEX BY BINARY_INTEGER;
--table타입으로 변수에 저장
empno_col empno_table;
ename_col ename_table;
sal_col sal_table;
i BINARY_INTEGER := 0;
BEGIN
FOR emp_list IN ( SELECT empno, ename, sal FROM emp) LOOP
i := i+1;
empno_col(i) := emp_list.empno;
ename_col(i) := emp_list.ename;
sal_col(i) := emp_list.sal;
END LOOP;
FOR cnt IN 1..i LOOP
DBMS_OUTPUT.PUT_LINE(' empno: ' || empno_col(cnt));
DBMS_OUTPUT.PUT_LINE(' ename: ' || ename_col(cnt));
DBMS_OUTPUT.PUT_LINE(' sal: ' || sal_col(cnt));
END LOOP;
END;
-----출력
empno: 7369
ename: SMITH
sal: 800
empno: 7499
ename: ALLEN
sal: 1600
empno: 7521
ename: WARD
sal: 1250
empno: 7566
ename: JONES
sal: 2975
empno: 7654
ename: MARTIN
sal: 1250
empno: 7698
ename: BLAKE
sal: 2850
empno: 7782
ename: CLARK
sal: 2450
empno: 7788
ename: SCOTT
sal: 3000
empno: 7839
ename: KING
sal: 5000
empno: 7844
ename: TURNER
sal: 1500
empno: 7876
ename: ADAMS
sal: 1100
empno: 7900
ename: JAMES
sal: 950
empno: 7902
ename: FORD
sal: 3000
empno: 7934
ename: MILLER
sal: 1300
'개발 > DB' 카테고리의 다른 글
[DB] 오브젝트 스캔 유형 (0) | 2022.04.18 |
---|---|
[DB]PL/SQL 연습하기 (0) | 2019.06.27 |
[DB]PL/SQL 프로시저 기초-기본 문법 2 (0) | 2019.06.26 |
[DB]PL/SQL 프로시저 기초-기본 문법 1 (0) | 2019.06.26 |
[DB] PL/SQL 란? (0) | 2019.06.19 |