본문 바로가기

IT/오라클

Oracle PL/SQL 강좌 4.3. DELETE 아래는 특정 사원 정보를 삭제하는 프로시저 예제이다.DELETE 예제 SQL> CREATE OR REPLACE PROCEDURE Delete_Test ( p_empno IN emp.empno%TYPE ) IS -- 삭제 데이터를 확인하기 레코드 선언 TYPE del_record IS RECORD ( v_empno emp.empno%TYPE, v_ename emp.ename%TYPE, v_hiredate emp.hiredate%TYPE) ; v_emp del_record ; BEGIN DBMS_OUTPUT.ENABLE; -- 삭제된 데이터 확인용 쿼리 SELECT empno, ename, hiredate INTO v_emp.v_empno, v_emp.v_ename, v_emp.v_hiredate FROM .. 더보기
Oracle PL/SQL 강좌 4.2. UPDATE 아래는 특정 사원의 급여를 일정 퍼센트(%) 인상/인하 하는 프로시저 예제이다.UPDATE 예제 SQL> CREATE OR REPLACE PROCEDURE Update_Test ( v_empno IN emp.empno%TYPE, -- 급여를 수정한 사원의 사번 v_rate IN NUMBER ) -- 급여의 인상/인하율 IS -- 수정 데이터를 확인하기 위한 변수 선언 v_emp emp%ROWTYPE ; BEGIN DBMS_OUTPUT.ENABLE; UPDATE emp SET sal = sal+(sal * (v_rate/100)) -- 급여를 계산 WHERE empno = v_empno ; COMMIT; DBMS_OUTPUT.PUT_LINE('데이터 수정 성공 '); -- 수정된 데이터 확인하기 위해 검색.. 더보기
Oracle PL/SQL 강좌 4.1. INSERT PL/SQL에서의 INSERT 문은 SQL과 비슷하다.INSERT 예제 -- 사원 등록 프로시저 예제 SQL> CREATE OR REPLACE PROCEDURE Insert_Test ( v_empno IN emp.empno%TYPE, v_ename IN emp.ename%TYPE, v_deptno IN emp.deptno%TYPE ) IS BEGIN DBMS_OUTPUT.ENABLE; INSERT INTO emp(empno, ename, hiredate, deptno) VALUES(v_empno, v_ename, sysdate, v_deptno); COMMIT; DBMS_OUTPUT.PUT_LINE( '사원번호 : ' || v_empno ); DBMS_OUTPUT.PUT_LINE( '사원이름 : ' ||.. 더보기
Oracle PL/SQL 강좌 3.2.4. PL/SQL Table of Record PL/SQL TABLE변수 선언과 비슷하며 데이터타입을 %ROWTYPE으로 선언하면 된다. PL/SQL TABLE과 RECORD의 복합 기능을 한다.PL/SQL Table Of Record 문법 -- 선언 예제 TYPE dept_table_type IS TABLE OF dept%ROWTYPE INDEX BY BINARY_INTEGER; -- Each element of dept_table is a record dept_table dept_table_type; -- 아래 프로시저에서 사용된 예제를 보면 이해가 쉽게 갈 것이다. PL/SQL Table Of Record 예제 CREATE OR REPLACE PROCEDURE Table_Test IS i BINARY_INTEGER := 0; -- PL/SQL .. 더보기
Oracle PL/SQL 강좌 3.2.3. PL/SQL 레코드 PL/SQL레코드는 여러개의 데이터 타입을 갖는 변수들의 집합이다. 스칼라, RECORD, 또는 PL/SQL TABLE datatype중 하나 이상의 요소로 구성 된다. 논리적 단위로서 필드 집합을 처리할 수 있도록 해 준다. PL/SQL 테이블과 다르게 개별 필드의 이름을 부여할 수 있고, 선언시 초기화가 가능하다.PL/SQL 레코드 문법 및 선언예제 -- 선언 예제 TYPE record_test IS RECORD ( record_empno NUMBER, record_ename VARCHAR2(30), record_sal NUMBER); -- record_test 레코드 타입으로 prd_record변수를 선언해서 사용 prd_record record_test; -- 아래 프로시저에서 사용된 예제를 보면.. 더보기