* com.ibatis.dao.client.template.SqlMapDaoTemplate.queryForObject("service.createSeqTable"); // Query실행 시.
* Object가 이미 존재할 경우 ORA-00955
* Dynamic Query를 이용해 좀더 활용 가능할 듯.
* 아래는 일자별 시퀀스 테이블 생성과, 시퀀스 조회 함수 생성 예
* Server App 초기화 시 사용해 볼 수 있을듯.
<statement id="createSeqTable">
CREATE TABLE NET_DAILYSEQ ( FDTSEQ CHAR(8), FSEQ NUMBER)
</statement>
<statement id="createSeqFunction">
CREATE OR REPLACE FUNCTION GET_DAILYSEQ RETURN NUMBER IS
PRAGMA AUTONOMOUS_TRANSACTION;
vFseq NUMBER;
BEGIN
vFseq := -1;
SELECT
NVL(MAX(FSEQ),0)+1 AS FSEQ into vFseq
FROM NET_DAILYSEQ
WHERE
FDTSEQ = TO_CHAR(SYSDATE,'YYYYMMDD');
MERGE INTO NET_DAILYSEQ A
USING
(
SELECT NVL(MAX(FDTSEQ),TO_CHAR(SYSDATE,'YYYYMMDD')) FDTSEQ, vFSEQ as FSEQ
FROM NET_DAILYSEQ
WHERE FDTSEQ = TO_CHAR(SYSDATE,'YYYYMMDD')
) B
ON (A.FDTSEQ = B.FDTSEQ)
WHEN MATCHED THEN
UPDATE SET A.FSEQ = B.FSEQ
WHEN NOT MATCHED THEN
INSERT VALUES (B.FDTSEQ, B.FSEQ);
COMMIT;
RETURN vFseq;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
RAISE;
END GET_DAILYSEQ;
</statement>