Oracle 기본정리 - Declare, Procedure 문제
프로그래밍 정리/Oracle
2019. 12. 4. 16:25
반응형
Oracle 기본정리 - Declare, Procedure 문제
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | --문제1 --exec proc3(7788); --레퍼런스 --사원번호: --사원명: --입사일: ---급여: --desc emp; create or replace procedure proc3(eno emp.empno%type) is vempno emp.empno%type; vename emp.ename%type; vhiredate emp.hiredate%type; vsal emp.sal%type; begin select empno,ename,hiredate,sal into vempno,vename,vhiredate,vsal from emp where empno=eno; dbms_output.put_line('값이 있습니다.'); dbms_output.put_line('vempno : '|| vempno); dbms_output.put_line('vename : ' || vename); dbms_output.put_line('vhiredate : ' || vhiredate); dbms_output.put_line('vsal : '|| vsal); exception --no data에 대한 예외 잡기 when no_data_found then dbms_output.put_line('값이 없습니다!'); end; exec proc3(7782); -------------------------------------------------------------------- --프로시저 계산 create or replace procedure proc4(a number,b number) is begin dbms_output.put_line(a/b); exception when ZERO_DIVIDE then dbms_output.put_line('0으로 나눌수 없습니다.'); end; execute proc4(10,2); execute proc4(10,0); ---------------------------------------------------------------------- --레퍼런스로 배열 받기 create or replace procedure proc5(a number) is emp_rec emp%rowtype; begin select * into emp_rec from emp where empno=a; dbms_output.put_line(emp_rec.empno); dbms_output.put_line(emp_rec.ename); dbms_output.put_line(emp_rec.sal); exception when NO_DATA_FOUND then dbms_output.put_line('데이터가 없습니다.'); end; execute proc5(7781); --------------------------------------------------- --프로시저 배열로 선언하기 create or replace procedure proc6(a number) is TYPE emp_rec_type IS RECORD(empno emp.empno%TYPE ,sal emp.sal%TYPE ,hiredate emp.hiredate%type); v_emp_rec emp_rec_type; begin select empno,sal,hiredate into v_emp_rec from emp where empno=a; dbms_output.put_line(v_emp_rec.empno); dbms_output.put_line(v_emp_rec.sal); dbms_output.put_line(v_emp_rec.hiredate); end; execute proc6(7782); ------------------------------------------------------------------------ --문제1 --empno ename job sal deptno --rec 타입 만들기 create or replace procedure proc7(a number) is TYPE emp_REC_TYPE is RECORD(empno emp.empno%TYPE ,ename emp.ename%TYPE ,job emp.job%TYPE ,sal emp.sal%TYPE ,deptno emp.deptno%TYPE ); v_emp_rec emp_REC_TYPE; begin select empno,ename,job,sal,deptno into v_emp_rec from emp where empno=a; dbms_output.put_line(v_emp_rec.empno); dbms_output.put_line(v_emp_rec.ename); dbms_output.put_line(v_emp_rec.job); dbms_output.put_line(v_emp_rec.sal); dbms_output.put_line(v_emp_rec.deptno); exception when NO_DATA_FOUND then dbms_output.put_line('데이터가 없습니다.'); end; exec proc7(7781); | cs |
반응형
'프로그래밍 정리 > Oracle' 카테고리의 다른 글
Oracle 기본정리 - Cursor 예제 (0) | 2019.12.04 |
---|---|
Oracle 기본정리 - Procedure(if,for,while,in,out 예제) (0) | 2019.12.04 |
Oracle 기본정리 - Declare, Procedure 기본 (0) | 2019.12.04 |
Oracle 기본정리 - 인덱스(Index) (0) | 2019.12.04 |
Oracle 기본정리 - 시퀀스(sequence) (0) | 2019.12.04 |