2008년 12월 17일 수요일

오라클 DB프로시져 간단 설명

우선 oracle에 접속할 id/passwd를 알아야 한다.

또한 오라클 접속 함수와 오라클 종료함수를 프로시져로 작성해야 한다.

오라클 에러 함수또한 반드시 작성해야 한다.
이렇게 3개의 함수는 프로시져로 반드시 작성해놓고 작업을 시작해야 한다.

커서를 이용한 제어

EXEC SQL DECLARE (커서명입력란) CURSOR FOR
SELECT a.FACT_CODE, a.STCK_CODE, nvl(STCK_IPPHON,' ')
FROM CLS_STCK_CD a, CLS_FACT_CD b
WHERE (b.FACT_CODE = a.FACT_CODE AND a.STCK_WIRE_FLAG = '1') AND (b.FACT_EXIT_DATE IS NULL OR TO_CHAR(SYSDATE, 'YYYYMMDD') < b.FACT_EXIT_DATE)
ORDER BY a.FACT_CODE, a.STCK_CODE;

위의 예에서 CLS_STCK_CD a, CLS_FACT_CD b는
다음과 같다
TABLE명 붙일별명, TABLE명 붙일별명


이것을 사용하기 싫다면 위의 예를 다음과 같이 변경해야 한다.


다음의 사용은 불러올 두 테이블에대해 두 테이블에 같은 항목이 있을경우 별칭을 붙여 사용하지 않으면 오라클은 애매한명칭 사용이라는 에러를 리턴한다.

EXEC SQL DECLARE (커서명입력란) CURSOR FOR
SELECT CLS_STCK_CD.FACT_CODE, CLS_STCK_CD.STCK_CODE, nvl(STCK_IPPHON,' ')
FROM CLS_STCK_CD, CLS_FACT_CD
WHERE (CLS_FACT_CD.FACT_CODE = CLS_STCK_CD.FACT_CODE AND CLS_STCK_CD.STCK_WIRE_FLAG = '1') AND (CLS_FACT_CD.FACT_EXIT_DATE IS NULL OR TO_CHAR(SYSDATE, 'YYYYMMDD') < CLS_FACT_CD.FACT_EXIT_DATE)
ORDER BY CLS_STCK_CD.FACT_CODE, CLS_STCK_CD.STCK_CODE;

이렇게 길어지고 복잡해지므로 간단하게 별칭을 사용하여 커서를 생성하는 편이 좋겠다.^^;
최차장님 감사합니다.^^;;

댓글 없음:

댓글 쓰기