본문 바로가기

pl/sql

Advanced Product Service 10g Develop PLP 02 7.10 Returining Clause CREATE or replace PROCEDURE update_salary(emp_id NUMBER) IS name emp.ename%TYPE; new_sal number(10); BEGIN UPDATE emp SET sal = sal * 1.1 WHERE empno = emp_id RETURNING ename, sal INTO name, new_sal; dbms_output.put_line ('ename: ' || name ||' sal: ' || new_sal); END update_salary; / 7.16 Bulk Binding (forall) à For 문과 forall 문의 속도차이를 경험하자!! (set timing on 설정) CREATE TABLE.. 더보기
Advanced Product Service 10g Develop PLP 01 Show errors CREATE OR REPLACE PROCEDURE User_Exception (v_deptno IN emp.deptno%type ) IS -- 예외의 이름을 선언 user_define_error EXCEPTION; -- STEP 1 cnt NUMBER; BEGIN DBMS_OUTPUT.ENABLE; SELECT COUNT(empno) INTO cnta FROM emp WHERE deptno = v_deptno; IF cnt < 5 THEN -- RAISE문을 사용하여 직접적으로 예외를 발생시킨다 RAISE user_define_error; -- STEP 2 END IF; EXCEPTION -- 예외가 발생할 경우 해당 예외를 참조한다. WHEN user_define_error THE.. 더보기
PLP10g Fundamentals 1.11 PL/SQL 블록 구조 SQL> accept g_one prompt 'Enter the first ename:' variable g_compensation number; declare v_onesal number; begin select sal into v_onesal from emp where ename = UPPER('&g_one'); :g_compensation := v_onesal ; end; / print g_compensation 문제) 이름을 넣으면 직업이 출력되게 위의 프로그램을 수정하시요 !! 1.21 Dbms_output SQL> set serveroutput on SQL> ed p1.sql declare v_name varchar(20); begin select ename i.. 더보기