PROTECTED ARTICLE. TYPE THE PASSWORD.
* Sample Scheme Install
> sqlplus /nolog
sql>conn sys/패스워드@SERVICENAME OR SID [as sysdba]
1) scott 유저의 생성 및 권한부여
SQL> create user scott identified by tiger
2 default tablespace users
3 temporary tablespace temp;
SQL > grant connect , resource to scott;
2) Sample Table Install ($ORACL_HOME/sqlplus/demo 설치 스크립트 저장소)
> sqlplus scott/tiger
SQL>@?/sqlplus/demo/demobld
3) 설치확인
> sqlplus scott/tiger
SQL> select * from tab;
* 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>
PROTECTED ARTICLE. TYPE THE PASSWORD.