반응형
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 | /* ROWTYPE 변수 및 복합변수 활용 */ /* rowType 변수를 활용한 데이터의 변경 */ declare c_rec row_test%rowtype; begin select * into c_rec from row_test where no = 3; c_rec.name := '강길동'; update row_test2 set row=c_rec where no = 3; end; / select * from row_test2; /* 사용자로부터 두개의 숫자를 입력받아 합을 구하는 예 치환연산자 & 사용 */ declare no1 number := '&no1'; no2 number := '&no2'; vsum number; begin vsum := no1 + no2; dbms_output.put_line('첫번째 수 : ' || no1 ||', 두번째 수 : '|| no2 || ', 합 : '|| vsum || '입니다.'); end; / /* 복합변수 레코드 타입 변수 지정 방법 - type 타입명 is record() - 식별자 type 타입명 */ declare type emp_rec is record (emp_id employees.employee_id%type, emp_name employees.first_name%type, emp_job employees.job_id%type ); rec1 emp_rec; begin select employee_id, first_name, job_id into rec1 from employees where department_id = 10; dbms_output.put_line('사번 이름 업무아이디'); dbms_output.put_line(rec1.emp_id || ' ' || rec1.emp_name || ' '|| rec1.emp_job); end; / declare type emp_rec2 is record( emp_id employees.employee_id%type, emp_name employees.last_name%type, emp_email employees.email%type, emp_salary employees.salary%type ); rec2 emp_rec2; vemp_id employees.employee_id%type := '&empid'; begin select employee_id, last_name, nvl(email,'없음'), salary into rec2 from employees where employee_id = vemp_id; dbms_output.put_line('사번 : '||rec2.emp_id); dbms_output.put_line('이름 : '||rec2.emp_name); dbms_output.put_line('이메일 : '||rec2.emp_email); dbms_output.put_line('급여 : '||rec2.emp_salary); end; / | cs |
반응형
'프로그래밍 > SQL' 카테고리의 다른 글
[Oracle SQL] 콜렉션, 바인드 변수 사용 (0) | 2017.09.30 |
---|---|
[Oracle SQL] PL/SQL 변수 선언 및 데이터 타입 (0) | 2017.09.06 |
[Oracle SQL] PL/SQL (0) | 2017.08.21 |
[Oracle SQL] 계층형 쿼리 (0) | 2017.08.17 |
[Oracle SQL] Sequence (0) | 2017.08.16 |