OS환경 : Oracle Linux6.8(64bit)
DB 환경 : Oracle Database 11.2.0.4
방법 : dbms_lock
PL/SQL을 작성할때 가끔 특정 시간 만큼 Sleep 을 원할 경우가 있음
이때 dbms_lock Package를 사용하면 편리함
일반 user가 execute 권한이 없을 경우엔 SYS user로 접속하여 권한 부여하여야 함
SQL> grant execute on dbms_lock to public;
사용 예시
dbms_lock들어있는 PLSQL 실행
SQL> begin
for i in 1 .. 7000 loop
insert into EMP values( i, 'TEST', 'DBA', 7839, sysdate, 100, 10, 10);
commit;
dbms_lock.sleep(1/10);
end loop;
end; 2 3 4 5 6 7
8 /
dbms_lock.sleep(1/10);
*
ERROR at line 5:
ORA-06550: line 5, column 3:
PLS-00201: identifier 'DBMS_LOCK' must be declared
ORA-06550: line 5, column 3:
PL/SQL: Statement ignored
정의되어 있지 않다고 나옴
권한부여
SQL> grant execute on dbms_lock to public;
PLSQL 재실행
begin
for i in 1 .. 7000 loop
insert into EMP values( i, 'TEST', 'DBA', 7839, sysdate, 100, 10, 10);
commit;
dbms_lock.sleep(1/10);
end loop;
end;
PL/SQL successfully completed.
=> 정상 실행됨
참조 :
'ORACLE > Sql' 카테고리의 다른 글
desc 사용 못할 때 테이블 구조 확인 dba_tab_columns 활용 (0) | 2018.09.27 |
---|---|
오라클 temp 사용량 확인 쿼리 (0) | 2018.09.10 |
테이블 dml 이력 확인 업데이트 인서트 딜리트 이력 확인 (0) | 2018.08.01 |
oracle scn 번호 체크 하는 쿼리 (0) | 2018.07.26 |
오라클 샘플 데이터 만들기, 테스트 데이터 벌크인서트 + dbms_random (2) | 2018.07.18 |