oracle

토드에서 function만들다

말없는채플린씨 2010. 1. 6. 09:46

 

 

==============내용=================(트리구조 전체 경로를 보여주는 함수 추가)

CREATE OR REPLACE FUNCTION SGC.fn_DEPT_PATH
(
    V_DPT_ID        NUMBER
)
RETURN VARCHAR2
IS
V_DPT_PARENT_ID     NUMBER          ;
V_DPT_NAME          VARCHAR2(100)   ;
V_tmp_DPT_ID         NUMBER          ;
V_RESULT            VARCHAR2(255)   ;
tmpVar              VARCHAR2(255)   ;

BEGIN
   tmpVar           :=  '';
   V_DPT_PARENT_ID  :=  -1;
   V_tmp_DPT_ID      :=  V_DPT_ID ;

   WHILE V_DPT_PARENT_ID <> 0 LOOP
  
       SELECT   DPT_PARENT_ID, DPT_NAME    
                INTO    V_DPT_PARENT_ID, V_DPT_NAME
         FROM   TM_DEPT
        WHERE   DPT_ID   =   V_tmp_DPT_ID ;
       
        IF V_RESULT IS NULL THEN
       
            V_RESULT  := V_DPT_NAME;
       
        ELSE   
       
            V_RESULT  := V_DPT_NAME || ' > ' || V_RESULT;
       
        END IF;
       
        V_tmp_DPT_ID   := V_DPT_PARENT_ID;
       
   END LOOP;
  
        tmpVar  :=  V_RESULT;
  
   RETURN tmpVar;
   EXCEPTION
     WHEN NO_DATA_FOUND THEN
       NULL;
     WHEN OTHERS THEN
       -- Consider logging the error and then re-raise
       RAISE;
END fn_DEPT_PATH ;
/

===================================================================

 

적용방법

 

1.  적용시킬 db의 c:\에 넣어둔다 (경로는 자기가 지정해도 상관없지만 기억은 하고 있어야 한다)

2. sql계정으로 들어가서 @c:\((자기가 만들었던 폴더를 적어주면 function 이 생성된다)

3. error가 났을경우 show error 명령으로 로그를 보면 수정이 편해진다

4. drop function명으로 지우고 다시 실행을 시킨다

 

==> 토드에서 만들때는 이런 과정 생략하고 간편함

1. 상단 메뉴에서 database 선택

2. 하위 메뉴에서 schema browser선택

3. functions선택해서 만들어진 function을 수정및 만들 수 있다

 


'oracle' 카테고리의 다른 글

토드 설치  (0) 2010.04.29
쿼리문중 1월 부터 12월 조회할때 달 쉽게 표현하기  (0) 2010.03.09
열의 수가 너무 많습니다  (0) 2009.12.17
[group by] 현업사용  (0) 2009.12.17
오라클 제약사항  (0) 2009.11.23