database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 37870 게시물 읽기
No. 37870
해석좀 부탁드려요....
작성자
이상영(lsrara)
작성일
2010-08-18 11:54
조회수
2,901

CREATE OR REPLACE FUNCTION FN_REF_GUBUN
(
    I_REF_ID                    IN  TB_APP_MST.REF_ID%TYPE
)
RETURN VARCHAR2 IS R_TEXT TB_APP_MST.REF_NO%TYPE;

BEGIN

    BEGIN
        SELECT REF_NO
        INTO   R_TEXT
        FROM   TB_APP_MST
        WHERE  REF_ID = I_REF_ID
        ;
        EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN
            SELECT REF_NO
            INTO   R_TEXT
            FROM   TB_APP_INT_CONSULT
            WHERE  REF_ID = I_REF_ID
            ;
            EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN
                SELECT REF_NO
                INTO   R_TEXT
                FROM   TB_APP_INT_REQ
                WHERE  REF_ID = I_REF_ID
                ;
                EXCEPTION WHEN NO_DATA_FOUND THEN
                    RETURN I_REF_ID;
            END;
        END;
    END;

    RETURN R_TEXT;

END;

 

제가 잘 모르는 상태입니다...   (><);;

무슨 뜻인지 잘 모르겟어요 ..  도와 주세요 ~~~~

이 글에 대한 댓글이 총 4건 있습니다.

    BEGIN
        SELECT REF_NO
        INTO   R_TEXT
        FROM   TB_APP_MST
        WHERE  REF_ID = I_REF_ID
        ;
        EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN     <-- TB_APP_MST 를 SELECT 한 결과가 없으면
            SELECT REF_NO
            INTO   R_TEXT
            FROM   TB_APP_INT_CONSULT
            WHERE  REF_ID = I_REF_ID
            ;
            EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN  <--    TB_APP_INT_CONSULT 를 SELECT 한 결과가 없으면

                SELECT REF_NO
                INTO   R_TEXT
                FROM   TB_APP_INT_REQ
                WHERE  REF_ID = I_REF_ID
                ;
                EXCEPTION WHEN NO_DATA_FOUND THEN  <--  TB_APP_INT_REQ 를 SELECT 한 결과가 없으면 그냥  I_REF_ID 코드를 리턴한다.

                    RETURN I_REF_ID;
            END;
        END;
    END;

    RETURN R_TEXT;  <-- 하나라도 정상적인 SELECT가 있으면 INTO로 받아온 R_TEXT를 리턴한다.

知音님이 2010-08-18 12:41에 작성한 댓글입니다. Edit

답변 감사합니다.  (^_____^);;

그런데..   위 쪽에 있는 ..

CREATE OR REPLACE FUNCTION FN_REF_GUBUN
(
    I_REF_ID                    IN  TB_APP_MST.REF_ID%TYPE
)
RETURN VARCHAR2 IS R_TEXT TB_APP_MST.REF_NO%TYPE;

이부분의   IN 과   IS 는 무슨 의미 일까요???

이상영님이 2010-08-18 13:25에 작성한 댓글입니다. Edit

CREATE OR REPLACE FUNCTION -- 펑션을 생성하거나 변경할건데.
FN_REF_GUBUN               -- 펑션명은 FN_REF_GUBUN 이고
(
    I_REF_ID               -- 변수명은 I_REF_ID 이고
    IN                     -- 입력변수임을 나타내죠, 출력변수는 OUT
    TB_APP_MST.REF_ID%TYPE -- 변수의 자료형을 나타내는데
                              TB_APP_MST 테이블의 REF_ID 컬럼의 자료형
)
RETURN VARCHAR2            -- 반환값의 자료형은 Varchar2 이지요.
IS                         -- 펑션은~ 하고 선언하는 부분
R_TEXT                     -- R_TEXT 라는 변수를 선언하는데
TB_APP_MST.REF_NO%TYPE;    -- 자료형은 TB_APP_MST의 REF_NO 컬럼의 자료형
BEGIN                      -- 여기서부터 처리를 시작합니다~
...
EXCEPTION                  -- 예외상황 발생시 처리
...
RETURN R_TEXT;             -- 값을 반환(함수에서는 필수 요소)
END;                       -- 여기서 끝


BEGIN ~ END 블럭은 중첩 사용할 수 있습니다.


그냥 무턱대고 질문하시는듯 합니다.
검색도 좀 해보고, 공보도 좀 해보신 후에 질문하시는게 좋을듯.

마농(manon94)님이 2010-08-18 13:58에 작성한 댓글입니다.

넵...   감사합니다..  (^_^);;

제가 완전 초짜라 (><)

공부 좀 많이 해야 할 것 같아요...     감사해요~~~~ 

이상영님이 2010-08-18 15:35에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
37873유동적인 조직도를 구현하려면 어떻게 해야하나요 ? [3]
simon
2010-08-19
3197
37872이 쿼리 해석좀^^;; [1]
조용두
2010-08-18
2731
37871숫자를 한글로.. [1]
아폴론
2010-08-18
3133
37870해석좀 부탁드려요.... [4]
이상영
2010-08-18
2901
37869데이터 값 비교 문의 드립니다. [2]
navidc
2010-08-18
2846
37868세로 데이터의 가로 표시 질문드립니다.. [2]
한수진
2010-08-18
3723
37867도움을 요청해요.. (ㅜㅡ) [6]
이상영
2010-08-17
3230
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다