SQL*Plus 기본 명령어 (2)

2018.04.13 07:00


sqlplus 명령어




sql*plus 기본 명령어2


이전에 정리해두었던 sql*plus 기본 명령어에 빠졌던거 몇가지 더 추가. 



참고로 이 명령어들은 sql*plus에서만 사용되는 명령어다. 그러므로 my sql같은 다른 DB나 토드, 오렌지 같은 오라클 클라이언트 프로그램에서는 동작하지 않는다. 



sql*plus의 기본 명령어와 컬럼 길이 조정에 대한 것은 이전 블로그글 참고





wrap off



sql*plus는 정해진 폭보다 많은 데이터가 있을 경우 다음 줄로 넘겨서 보여준다. 


아래 그림에서 deptno 컬럼이 다음 줄로 넘겨졌다. 




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SQL> select * from emp;
 
     EMPNO ENAME      JOB              MGR HIREDATE            SAL       COMM
---------- ---------- --------- ---------- ------------ ---------- ----------
    DEPTNO
----------
      7369 SMITH      CLERK           7902 17-DEC-80           800
        20
 
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300
        30
 
      7521 WARD       SALESMAN        7698 22-FEB-81          1250        500
        30
 
cs




wrap off로 설정해두면 다음줄로 넘기지 않고 현재 화면에서 보여줄 수 있는만큼만 보여준다. 

(대신 deptno가 truncate 되었다고 알려준다)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SQL> set wrap off
SQL> select * from emp;
truncating (as requested) before column DEPTNO
 
 
     EMPNO ENAME      JOB              MGR HIREDATE            SAL       COMM
---------- ---------- --------- ---------- ------------ ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80           800
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300
      7521 WARD       SALESMAN        7698 22-FEB-81          1250        500
      7566 JONES      MANAGER         7839 02-APR-81          2975
      7654 MARTIN     SALESMAN        7698 28-SEP-81          1250       1400
      7698 BLAKE      MANAGER         7839 01-MAY-81          2850
      7782 CLARK      MANAGER         7839 09-JUN-81          2450
      7788 SCOTT      ANALYST         7566 09-DEC-82          3000
      7839 KING       PRESIDENT            17-NOV-81          5000
      7844 TURNER     SALESMAN        7698 08-SEP-81          1500
      7876 ADAMS      CLERK           7788 12-JAN-83          1100
 
cs






만약 wrap off 시켜서 보이지 않는 컬럼이 꼭 필요하다면 linesize를 늘려서 화면 폭을 키우는 방법을 사용한다. 



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SQL> set linesize 200
SQL> select * from emp;
 
     EMPNO ENAME      JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80           800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81          1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81          2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81          1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81          2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81          2450                    10
      7788 SCOTT      ANALYST         7566 09-DEC-82          3000                    20
      7839 KING       PRESIDENT            17-NOV-81          5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81          1500                    30
      7876 ADAMS      CLERK           7788 12-JAN-83          1100                    20
 
cs





heading


화면에 출력할 때 컬럼의 제목을 바꿔주는 기능이다. 


select 컬럼명 as alias from...  


이렇게 select문 안에서 컬럼명에 대한 별칭을 주는 것과 비슷한 기능.





기본적인 사용법은 아래와 같다. 



column 컬럼명 heading 별명 




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SQL> column ename heading NAME temp
SQL> select * from emp;
 
     EMPNO NAME       JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80           800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81          1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81          2975                    20
 
 
 
SQL> column ename heading "employee name" temp
SQL> select * from emp;
 
     EMPNO employee n JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80           800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81          1250        500         30
 
cs





별명으로 사용하는 컬럼명에 특수문자가 있을 경우 ""로 묶어준다. 

위 그림에서는 컬럼의 별명이 너무 길어져서 emplyee n 까지만 출력되었다. 

ename 컬럼의 길이를 조금 더 늘려줘보자.




1
2
3
4
5
6
7
8
9
10
SQL> column ename format a20
SQL> column ename heading "employee name" temp
SQL> select * from emp;
 
     EMPNO employee name        JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- -------------------- --------- ---------- ------------ ---------- ---------- ----------
      7369 SMITH                CLERK           7902 17-DEC-80           800                    20
      7499 ALLEN                SALESMAN        7698 20-FEB-81          1600        300         30
      7521 WARD                 SALESMAN        7698 22-FEB-81          1250        500         30
      7566 JONES                MANAGER         7839 02-APR-81          2975                    20
cs





column에서 컬럼명의 별칭을 사용하는 것이 select 문에서 as 별칭을 사용하는 것보다 좋은 장점? 


컬럼 이름을 두 줄로 표현할 수 있다 !!




1
2
3
4
5
6
7
8
9
10
SQL> col ename heading employee|name temp
SQL> select * from emp;
 
           employee
     EMPNO name       JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80           800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81          1250        500         30
 
cs





덧. 


heading을 지정할 때 맨 뒤에 "temp"를 넣어주면 이어지는 한 번의 select문에만 적용되지만 temp를 붙이지 않으면 해당 세션동안 계속 heading이 적용된다. 


또루아빠 SQL(오라클,mysql) , , , , , ,