프린트 하기

OS 환경 : Oracle Linux 7.6 (64bit)

 

DB 환경 : Oracle Database 19.3.0.0

 

방법 : 오라클 19c sqlplus 의 history 명령어

오라클 12.2버전부터 sqlplus 에서 사용가능한 history 명령어는 사용자가 실행한 sql 및 pl/sql 명령어의 이력을 관리하고 활용할 수 있게 해주는 강력한 기능임
이 기능을 이용해 명령어 이력을 조회하고, 이력을 기반으로 명령어를 재실행하거나 편집할 수 있음

 

 

구문

1
SQL> HIST[ORY] [n RUN | EDIT | DEL[ETE]] | [CLEAR | LIST]

 

 

테스트
1. history 기능 on
2. 이력 조회
3. 명령어 재실행
4. 명령어 편집
5. 명령어 삭제
6. history 전체 삭제

 

 

테스트
1. history 기능 on

1
SQL> set history on

 

 

2. 이력 조회
현재 세션의 명령어 이력 조회

1
2
3
4
5
6
7
8
9
SQL> history
  1  select 1 from dual;
  2  select view_name from dba_views where view_name = 'DBA_DATA_FILES';
  3  select * from dual;
  4  select * from emp where empno >= 7788;
  5  selec t * from dual;
  6  select empnmmo from emp ;
  7  select empno from emp;
* 8  hiustory

set history on 이후 입력한 명령어들의 기록을 확인할 수 있음

 

 

3. 명령어 재실행
history 목록에서 특정번호의 명령어를 재실행

1
2
3
4
5
SQL> history 3 run
 
D
-
X

 

 

4. 명령어 편집
history 목록에서 특정번호의 명령어를 편집

1
SQL> history 5 edit

vi editor에서 selec t * from dual; 를 select * from dual;로 수정함

 

 

5. 명령어 삭제
history 목록에서 특정번호의 명령어를 삭제

1
SQL> history 6 delete

기존 6번이던 select empnmmo from emp ; 를 삭제함

 

 

삭제 후 재확인

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> history
  1  select 1 from dual;
  2  select view_name from dba_views where view_name = 'DBA_DATA_FILES';
  3  select * from dual;
  4  select * from emp where empno >= 7788;
  5  selec t * from dual;
  6  select empno from emp;
  7  hiustory
  8  select * from dual;
  9  /
*10  ed
     select * from dual
     /

정상적으로 삭제됨

 

 

6. history 전체 삭제
전체 삭제(clear)

1
SQL> history clear

 

 

삭제 후 재확인

1
2
3
SQL> history
SP2-1651: History list is empty.
Help: https://docs.oracle.com/error-help/db/sp2-1651/

history 가 비어있다고 표시됨

 

 

결론 :
sqlplus 에서 history 기능을 잘 사용하면 쿼리 생산성이 향상될수 있음

 

 

참조 : 

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqpug/HISTORY.html
https://docs.oracle.com/en/database/oracle/oracle-database/19/sqpug/HISTORY.html
https://docs.oracle.com/en/database/oracle/oracle-database/23/sqpug/HISTORY.html#GUID-CCF9B047-3122-4644-BA06-5FA4B5812E9