DataBase/PLSql
[PL/Sql] 프로시저 표본
Sort
2011. 1. 19. 15:46
set serveroutput on; //테스트시 output 결과 보기위해 해준다
DECLARE
CD_ID VARCHAR2(200);
CD VARCHAR2(200);
v_Return VARCHAR2(200);
BEGIN
CD_ID := '';
CD := '';
//쿼리
v_Return := ''
DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
END;
----------------------------------------------------------------
FOR UPDATE
다른 DBA관리자가 위 테이블을 조작하게 되여서 앞에서 처럼 동시접근으로 인한 문제가 생길수 있으므로
LOCK 을 고려해보면 다음과 같이 코딩하면된다.
CREATE OR REPLACE PROCEDURE PCD_CUMMUPDATE
IS
CURSOR CUR_SAWON10
IS
SELECT SANO, COMM
FROM TBL_MEMBER
WHERE DEPTNO=10
FOR UPDATE
BEGIN
FOR i IN CURSAWON10 LOOP
UPDATE TBL_MEMBER SET SAL=SAL+300
WHERE SANO=i.SANO
END;
역시 일반쿼리문과 별다른것은 없다. 다수의 행을 처리해야하므로 커서를쓰고 커서 정의구문에 FOR UPDATE 구문을 사용했다.