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 구문을 사용했다.
'DataBase > PLSql' 카테고리의 다른 글
[PL/Sql] PL/Sql 연산자 (0) | 2012.08.13 |
---|---|
[PL/Sql] PL/Sql 블럭구조 (0) | 2012.08.13 |
[PL/Sql] PL/Sql 데이터형 (0) | 2012.08.13 |
[PL/Sql] PL/Sql 개념과예제 (0) | 2012.08.13 |
[PL/Sql] 강좌 (0) | 2010.10.29 |