HOME   로그인   회원가입
    
회원가입
비밀번호 찾기 자동로긴
이전게시판
   free_board
   건강게시판
   오라클DB
   Linux
   HTML/javascript
   질문과 답
호서기
   이미지게시판  
   건강게시판  
   음악자료  
   성준이 게시판  
[일반] 오라클의 sequence 초기화
  호석 님께서 쓴 글입니다 - 121.♡.39.7 읽음:3177  
오라클의 sequence는 alter 구문으로 시작값을 변경 할 수 없다.

그래서 sequence 의 start 값을 초기화하거나 다른 값으려 하려고 하면
sequence를 drop 한 후 새로 생성해 줘야한다.

이 방법이 가장깔끔하긴 한데..가끔 drop, create 권한이 없을 경우 문제가 된다.
그래서 약간의 꽁수를 이용해서 drop 하지 않고 sequence를 초기화 하는 방법이다.



CREATE OR REPLACE PROCEDURE P_RESET_SEQ( SEQ_NAME IN VARCHAR2 )
IS
    L_VAL NUMBER;
BEGIN
    EXECUTE IMMEDIATE 'select ' || SEQ_NAME || '.nextval from dual' INTO L_VAL;

    EXECUTE IMMEDIATE 'alter sequence ' || SEQ_NAME || ' increment by -' || L_VAL || ' minvalue 0';

    EXECUTE IMMEDIATE 'select ' || SEQ_NAME || '.nextval from dual' INTO L_VAL;

    EXECUTE IMMEDIATE 'alter sequence ' || SEQ_NAME || ' increment by 1 minvalue 0';
END;

출처 : http://sqler.pe.kr/web_board/view_list.asp?id=251&part=myboard8&block=0&gotopage=2&tip=



위와 같이 하면 sequence의 시작값이 0으로 된다.
만일 시작값을 300으로 하고 싶다면 위 구문 적은 다음에

for i 0..300 loop
    EXECUTE IMMEDIATE 'select ' || SEQ_NAME || '.nextval from dual' INTO L_VAL;
end loop;

요 구문 추가해주면 된다.


목록

분류 선택
138 일반 일괄처리 쿼리문 호석 13-02-21 2670
137 일반 mysql 튜닝 최적화 호석 12-04-07 2778
일반 오라클의 sequence 초기화 호석 11-11-24 3178
135 일반 레드햇 엔터프라이즈4에 오라클9i(9.2.0.4)설치 호석 11-10-07 59182
134 일반 not in 보다는 exist 를 많이 사용해보자 호석 11-04-04 2796
133 일반 INDEX의 사용여부 확인하기 호석 11-04-01 2217
132 일반 Standby Database 구축[ GOOD GOOD ] 호석 11-03-16 2437
131 일반 Linux 및 Windows 환경을 위한 PHP, Oracle 10g Instant Client 설치 호석 11-01-07 2300
130 일반 토드나 오렌지 대체 무료 오라클 툴 호석 10-12-30 2735
129 일반 시퀀스 사용방법 ( SEQUENCE ) 호석 10-04-22 3628
128 일반 오라클 라이센스 유져 산정법 호석 10-04-13 3723
127 일반 오라클 백업 방법 ( cold 백업, hot백업, export 백업 ) 호석 10-02-17 4119
126 일반 오라클 설치시 자바관련 에러처리 케이스 호석 10-02-17 3507
125 일반 pfile과 spfile 의 차이점 호석 10-02-01 4038
124 일반 Standby Database 구축 호석 10-01-31 3676
1 [2] [3] [4] [5] [6] [7] [8] [9] [10]  다음맨끝

 
Copyright © zenos.pe.kr. All rights reserved.