카테고리 없음2008. 6. 13. 19:26

CREATE OR REPLACE PROCEDURE "USP_DFTEST_BI" (
    V_FABID         MIDAS.MIDAS_DFTEST.FABID%TYPE,
    V_EQCODE        MIDAS.MIDAS_DFTEST.EQCODE%TYPE,
    V_TESTNAME      MIDAS.MIDAS_DFTEST.TESTNAME%TYPE,
    V_TESTDATE      MIDAS.MIDAS_DFTEST_DAILY.TESTDATE%TYPE,
    V_LOTID         MIDAS.MIDAS_DFTEST.LOTID%TYPE,
    V_SETUPID       MIDAS.MIDAS_DFTEST.SETUPID%TYPE,
    V_STEPID        MIDAS.MIDAS_DFTEST.STEPID%TYPE,
    V_SLOTNO        MIDAS.MIDAS_DFTEST.SLOTNO%TYPE,
    V_DIEPITCHX     VARCHAR2,
    V_DIEPITCHY     VARCHAR2,
    V_TESTID_OUT    OUT NUMBER,
    V_ISEXIST_OUT    OUT NUMBER
)
IS
   vCnt              NUMBER(10);
   vGROUPID            VARCHAR2(10);
BEGIN

--  AdoptDate 삭제됨..

   SELECT NVL(COUNT(*),0) INTO vCnt
   FROM MIDAS_DFTEST
   WHERE FABID=V_FABID AND EQCODE=V_EQCODE AND TESTNAME=V_TESTNAME;

   IF vCnt<1 THEN
  
        V_ISEXIST_OUT := 0;

        SELECT NVL(MAX(TESTID), 0)+1 INTO V_TESTID_OUT FROM MIDAS_DFTEST;

       
        SELECT NVL(MAX(GROUPID),'Unknown') INTO vGROUPID FROM MIDAS_EQUIPMENT
        WHERE FABID=V_FABID AND EQCODE=V_EQCODE;
       
       
        INSERT INTO MIDAS_DFTEST ( TESTID, FABID, EQCODE, TESTNAME, GROUPID, LOTID, SETUPID
        , STEPID, SLOTNO, REGUSERID, REGUSERNAME, TESTSTATE, DIEPITCHX, DIEPITCHY )
        VALUES
        ( V_TESTID_OUT, V_FABID, V_EQCODE, V_TESTNAME, vGROUPID, V_LOTID, V_SETUPID
        , V_STEPID, V_SLOTNO, 'SYSTEM', '관리자', 2, TO_NUMBER(V_DIEPITCHX), TO_NUMBER(V_DIEPITCHY) );

   ELSE
        V_ISEXIST_OUT := 1;
          
        UPDATE MIDAS_DFTEST SET
            DIEPITCHX = TO_NUMBER(V_DIEPITCHX),
            DIEPITCHY = TO_NUMBER(V_DIEPITCHY)
        WHERE FABID=V_FABID AND EQCODE=V_EQCODE AND TESTNAME=V_TESTNAME;
       
        SELECT NVL(MAX(TESTID),0) INTO V_TESTID_OUT
        FROM MIDAS_DFTEST
        WHERE FABID=V_FABID AND EQCODE=V_EQCODE AND TESTNAME=V_TESTNAME ;
       
   END IF;

END USP_DFTEST_BI;
/

Posted by penguindori