오라클 명시적 커서 예제(Explicit Cursor) 입니다. LOOP~END LOOP 이용
S_ITEM 테이블에서 주문번호를 입력받아 각 상품에 해당하는 주문액과 총금액을 출력
CREATE OR REPLACE PROCEDURE show_ordtotal
( v_ord_id IN s_item.ord_id%TYPE )
IS
v_product_id s_item.product_id%TYPE ;
v_item_total NUMBER(11,2);
v_total NUMBER(11,2) := 0;
-- 커서선언, 아직 실행은 안됨
CURSOR ordtotal_cursor IS
SELECT product_id, price*quantity
FROM s_item
WHERE ord_id = v_ord_id;
BEGIN
-- 커서 오픈, 비로서 실행
OPEN ordtotal_cursor;
LOOP
-- 실행 결과 ResordSet에서 한건씩 추출
FETCH ordtotal_cursor INTO v_product_id, v_item_total;
EXIT WHEN ordtotal_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_product_id,'9999999')||
' '||TO_CHAR(v_item_total,'9,999,999'));
v_total := v_total + v_item_total;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Total Amount : '||
TO_CHAR(v_total,'999,999,999.99'));
//커서 닫기
CLOSE ordtotal_cursor;
END;
/
S_ITEM 테이블에서 주문번호를 입력받아 각 상품에 해당하는 주문액과 총금액을 출력
CREATE OR REPLACE PROCEDURE show_ordtotal
( v_ord_id IN s_item.ord_id%TYPE )
IS
v_product_id s_item.product_id%TYPE ;
v_item_total NUMBER(11,2);
v_total NUMBER(11,2) := 0;
-- 커서선언, 아직 실행은 안됨
CURSOR ordtotal_cursor IS
SELECT product_id, price*quantity
FROM s_item
WHERE ord_id = v_ord_id;
BEGIN
-- 커서 오픈, 비로서 실행
OPEN ordtotal_cursor;
LOOP
-- 실행 결과 ResordSet에서 한건씩 추출
FETCH ordtotal_cursor INTO v_product_id, v_item_total;
EXIT WHEN ordtotal_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_product_id,'9999999')||
' '||TO_CHAR(v_item_total,'9,999,999'));
v_total := v_total + v_item_total;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Total Amount : '||
TO_CHAR(v_total,'999,999,999.99'));
//커서 닫기
CLOSE ordtotal_cursor;
END;
/
[오프라인 개강예정강좌, 오프라인교육장에 오시면 보다 자세히 배울 수 있습니다.]
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[11/25]Spring3.X, MyBatis, Hibernate실무과정
[12/02]안드로이드개발자과정
[12/02]iPhone 하이브리드 앱 개발 실무과정
[12/09][기업100%환급]Spring Framework,MyBatis,Hibernate실무프로젝트과정
[12/16][기업100%환급]PL/SQL,ORACLE HINT,TUNING
[12/23][기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
[01/06][기업100%환급]SQL기초에서 Schema Object까지
[평일야간]
[11/28]Spring3.X, MyBatis, Hibernate실무과정
[11/29]자바초보에서안드로이드까지
[12/02]JAVA&WEB프레임워자실무과정
[12/03]웹퍼블리싱 마스터
[12/03]iPhone하이브리드앱개발실무과정
[12/04]SQL초보에서실전전문가까지
[12/09]C#,ASP.NET마스터
[주말]
[11/30]SQL초보에서전문가까지
[11/30]C#,ASP.NET마스터
[12/07]Spring3.X,MyBatis,Hibernate실무과정
[12/14]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
[12/14]자바초보에서안드로이드까지
[12/14]웹퍼블리싱 마스터
댓글 없음:
댓글 쓰기