태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

/*****************************************************************
특정 테이블에 row가 추가/변경/삭제된 경우에 작동되는 트리거 샘플입니다.
추가/변경/삭제가 되면 그 row의 key 값을 지정한 테이블 (tb_log)에 저장하는 간단한 예입니다.
*****************************************************************/

CREATE OR REPLACE TRIGGER trigger_name
    AFTER INSERT OR UPDATE OR DELETE ON table_name
    FOR EACH ROW

BEGIN
   IF INSERTING THEN
         INSERT INTO Tb_log VALUES ( :NEW.table_key, '0');
   ELSIF UPDATING THEN
         INSERT INTO Tb_log VALUES ( :NEW.table_key, '1');
   ELSIF DELETING THEN
         INSERT INTO Tb_log VALUES ( :OLD.table_key, '2');
   END IF;
   EXCEPTION
       WHEN OTHERS THEN
       RETURN;
END;
/
Posted by bomsoft
TAG Oracle, RP, SQL, Trigger
/* Windchill (6.x)에서 workflow 상의 queue에 쌓여있는 entry 갯수 조회 SQL */
SELECT ida3a5, count(ida3a5)
  FROM queueentry t
WHERE codec5!='FAILED'
GROUP BY ida3a5 ;

Posted by bomsoft

[설명]  TABLE_1에 다음과 같이 중복된 데이터가 있다면, SEQNO = 1234 인 두개의 ROW중에서 하나만 삭제하고 싶은 경우에...

SEQNO    DATA_1
-------------------
1234       1000
1234       1000
1235       1200
1236       1250
--------------------

[샘플 코드]
DELETE FROM TABLE_1 A
WHERE ROWID > (SELECT MIN(ROWID)
                           FROM TABLE_1 B
                            WHERE A.SEQNO = B.SEQNO) ;

와 같이 하면 됩니다.

Posted by bomsoft