프로그램/DB

Oracle Procedure - 01

영혼과영혼의양식 2012. 3. 11. 23:51
오라클 프로시저

CREATE OR REPLACE PROCEDURE XXXXXXX.P_ITEM_NAME
(
 P_ITEMID IN ITEM.ITEMID%TYPE
)

IS
 V_ITEM_NAME ITEM.ITEMNAME%TYPE;

BEGIN

 DBMS_OUTPUT.ENABLE;

    SELECT ITEMNAME INTO V_ITEM_NAME
      FROM ITEM
     WHERE ITEMID = P_ITEMID;

     DBMS_OUTPUT.PUT_LINE('ITEM_NAME => ' || V_ITEM_NAME);


     EXCEPTION
      WHEN OTHERS THEN
         DBMS_OUTPUT.PUT_LINE('EXCEPTION => ' || SQLERRM);

END P_ITEM_NAME;



CREATE OR REPLACE PROCEDURE YYYYYYY.P_BOARD_BAK
(
 P_BOARD_SEQ IN BOARD.BOARD_SEQ%TYPE
)

IS
    V_BOARD_SEQ  BOARD_BAK.BOARD_SEQ%TYPE;
    V_BOARD_TYPE BOARD_BAK.BOARD_TYPE%TYPE;
    V_BOARD_STEP BOARD_BAK.STEP%TYPE;
    V_BOARD_TITLE BOARD_BAK.TITLE%TYPE;
    V_BOARD_CONTENT BOARD_BAK.CONTENT%TYPE;
    V_BOARD_IP  BOARD_BAK.IP%TYPE;
    V_DELETE_YN  BOARD_BAK.DELETE_YN%TYPE;
    V_REGI_DT  BOARD_BAK.REGI_DT%TYPE;
    V_REGI_USER  BOARD_BAK.REGI_USER%TYPE;
    V_MODI_DT  BOARD_BAK.MODI_DT%TYPE;
    V_MODI_USER  BOARD_BAK.MODI_USER%TYPE;

    CURSOR C_BOARD_ITEM IS
    SELECT BOARD_SEQ, BOARD_TYPE, STEP, TITLE, CONTENT, IP, DELETE_YN, REGI_DT,
           REGI_USER, MODI_DT, MODI_USER

      FROM BOARD
     WHERE BOARD_SEQ = P_BOARD_SEQ;


BEGIN
 DBMS_OUTPUT.ENABLE;

    OPEN C_BOARD_ITEM;

    LOOP

        FETCH C_BOARD_ITEM INTO V_BOARD_SEQ, V_BOARD_TYPE, V_BOARD_STEP, V_BOARD_TITLE,
              V_BOARD_CONTENT, V_BOARD_IP, V_DELETE_YN, V_REGI_DT, V_REGI_USER, V_MODI_DT,
              V_MODI_USER;

        EXIT WHEN C_BOARD_ITEM%NOTFOUND;
       
        INSERT INTO BOARD_BAK(BOARD_SEQ, BOARD_TYPE, STEP, TITLE, CONTENT, IP, DELETE_YN,
                              REGI_DT, REGI_USER, MODI_DT, MODI_USER, BAK_DATE)

        VALUES(V_BOARD_SEQ, V_BOARD_TYPE, V_BOARD_STEP, V_BOARD_TITLE, V_BOARD_CONTENT,
           V_BOARD_IP, V_DELETE_YN, V_REGI_DT, V_REGI_USER, V_MODI_DT, V_MODI_USER, SYSDATE);

     
        COMMIT;

    END LOOP;

    CLOSE C_BOARD_ITEM;


    EXCEPTION
     WHEN OTHERS THEN
         ROLLBACK;
         DBMS_OUTPUT.PUT_LINE('EXCEPTION : ' || SQLERRM);


END P_BOARD_BAK;