#설명
프로시저 = SQL + 로더 = PLSQL
- Begin ~ END 로 블록의 단위
- cursor 이라는 기능을 사용하여 list 처럼 생기는 rs.next 와 같은 한행 하나하나 읽어서 사용할수 있음, (한행당inset, update)
-프로시저를 패키니 않에 넣고 사용이 가능함.
- as 위에꺼를 뒤에꺼 처럼 쓸거야.
ex)
P1 IN VARCHAR2,
P2 IN OUT VARCHAR2,
P3 OUT VARCHAR2
pro프로시저 A { ('1','2',P3 );
#프로시저가 끝나면 결과값을 돌려받음 변수에 선언한것에 값이 들어감 . outp
- FOR REC IN cursor
cursor : 커서의 현재 행의 값을 변수 rec에 담고 커서가 가르키고 있는 값을 rec.number1 이라고 한다.
select * from ~ 를 rec 에 담을수도 있다.
rec.number1 (컬럼명) 을 넣고 프로시저를 돌릴수도 있음.
[프로시저] SAMPLE 1
CRATE OR REPLACE PROCEDURE TEST_PROCEDURE
IS
CURSOR LEY_DATE IS
SELECT CSTMID, PWD, PSWD2, UPDATEFL
FROM LEY_LOGINUPDATE;
BEGIN
FOR REC IN LEY_DATE LOOP
INSERT INTO
WHJ_PWDUPDATE(USERID, PWD1,PWD2 , UPDATEYN)
VALUES ( REC.CSTMID , REC.PWD , REC.PWD2 , REC.UPDATEFL);
COMMIT;
END LOOP;
END;
SQL 에서 프로시저 호출할때 -> EXCUTE TEST_PROCEDURE ();
IBATIS 에서 프로시저 호출할때 -> {CALL TEST_PROCEDURE(); }
[프로시저] SAMPLE 2
CREATE OR REPLACE PROCEDURE JAVATEST
(
P1 IN VARCHAR2,
P2 IN OUT VARCHAR2,
P3 OUT VARCHAR2
)
AS
P2 := P2 | P3;
P3 := P1;
END;
'언어 > DB' 카테고리의 다른 글
[PLSQL] (0) | 2015.03.10 |
---|---|
[DB] 문법 (0) | 2015.03.09 |
[DB] 시노님 (0) | 2015.01.01 |
20141230 DB (0) | 2014.12.30 |
20140530 [SQL] (0) | 2014.12.22 |