SQL 파일 명령어
파일 명령어는 보관중인 버퍼의 내용을 영구적으로 기록하기 위해서 파일에 저장하는 명령어입니다.
명령어 | 설명 |
EDIT (ED) | 파일의 내용을 vi(유닉스)나 notepad(윈도우즈)와 같은 에디터로 읽어 편집을 할 수 있도록 합니다. |
HOST | 오라클을 종료하지 않고 OS 명령어를 수행할 수 있게 OS 환경으로 잠시 빠져나갈 수 있도록 합니다. HOST로 OS를 잠시 빠져나간 상태에서는 EXIT를 통해 다시 Oracle로 돌아올 수 있습니다. |
SAVE | SQL 버퍼 내의 현재 내용을 실제 파일로 저장합니다. |
@ | SQL 파일에 저장된 내용을 실행합니다. |
SPOOL | 오라클 화면을 갈무리하여 파일로 저장합니다. |
GET | 파일의 내용을 SQL 버퍼로 읽어 들입니다. |
EXIT | 오라클을 종료합니다. |
파일 내용을 메모장에서 편집하게 하는 DEIT (ED)
ed
ed 명령어를 사용할 때 파일 이름을 생략하면 버퍼에 저장된 명령어를 메모장에서 쉽게 편집할 수 있도록 합니다.
ed를 입력하면 메모장이 실행되면서 마지막에 입력했던 SQL 명령문을 불러옵니다.
주의사항으로는 SQL 쿼리를 입력할 때 마무리하는 ; (세미콜론)을 / (슬레쉬)로 대체하여 나타납니다.
SQL 명령문이 저장된 버퍼는 파일 형태인데 파일 이름은 afiedt.buf 입니다.
DOS 프롬프트로 나가게 하는 HOST
HOST
EXIT
OS 환경을 사용하기 위해 HOST 명령어를 통해 DOS 환경으로 나갈 수 있고 EXIT 명령어를 통해 다시 SQL 환경으로 돌아올 수 있습니다.
위에서 만든 afidet.buf파일 등이 존재하는 것을 확인할 때 오라클을 종료하지 않고 DOS로 나가서 확인할 수 있습니다.
사용자가 현재 수행중인 쿼리문을 저장하는 SAVE
SAVE 명령어는 옵션으로 APPEND와 REPLACE 옵션을 사용할 수 있습니다.
APPEND 옵션은 이미 존재하는 파일 끝에 마지막으로 실행한 명령어가 추가됩니다.
REPLACE 옵션은 이미 존재하는 파일에 새로운 내용을 덮어쓸 수 있습니다.
save a001
host
dir
exit
SAVE로 연봉을 계산하는 쿼리를 a001로 저장하고 HOST 명령어로 DOS로 나가서 dir 명령어를 통해 저장이 실제로 되었는지 확인했습니다. 그 후, exit 명령어를 통해 다시 오라클 환경으로 돌아옵니다.
ed 명령어를 통해 저장한 파일명으로 편집할 수 있습니다.
SQL 파일에 저장된 명령어를 실행하는 @
@a001
@ 명령어는 확장자가 .SQL인 파일에 저장되어 있는 쿼리문을 실행시키기 위해 사용합니다.
.SQL 파일안에 있는 쿼리가 여러개면 순차적으로 수행합니다.
갈무리 기능을 하는 SPOOL
SAVE 명령어가 SQL문 자체를 저장하는데 비해 SPOOL 명령어는 SQL문과 실행된 쿼리 결과를 파일로 기록하는 명령어입니다.
한마디로 화면에 보여지는 내용 전체를 하나의 파일로 만들어 줍니다.
확장자는 기본적으로 .LST가 부여됩니다.
SPOOL OFF
SPOOL를 해제하기 위해 SPOOLOFF 명령어가 제공됩니다.
SPOOL OFF 명령어는 SPOOL를 화면 갈무리 작업을 중단하며 해제하기 전 까지의 여러 SQL 명령문을 모두 저장합니다.
SPOOL명령어를 사용할 때 주의할 점으로는 화면 갈무리한 내용을 저장하기 위해서는 반드시 SPOOL OFF를 해줘야 합니다.
SPOOL OFF를 하지 않고 오라클을 종료하면 지금까지 갈무리한 내용이 저장되지 않고 날아갑니다.
spool b001
select
*
from
dept;
select
*
from
emp;
spool을 입력하여 갈무리 기능을 시작하고 dept와 emp를 조회했습니다.
spool off
위에서 갈무리한 내용을 저장하기 위해서 spool off 명령어를 반드시 입력해 줍니다.
host
dir b001.lst
exit
DOS 창으로 잠시 나가서 b001 파일이 저장되었는지 확인합니다.
기본 확장자는 .LST입니다.
저장은 정상적으로 되었습니다.
ed b001.lst
에디터에서 열어보면 전체 기록이 전부 다 정상적으로 기록되어 있습니다.
SPOOL 시작 자체는 기록이 되지 않고 SPOOL OFF는 기록이 되는 것을 확인할 수 있습니다.
저장한 SQL 명령어를 가져오는 GET
/ 명령어를 통해 버퍼(afiedt.buf)에 저장된 쿼리문(이전 쿼리문)을 실행합니다.
이전 말고 더 예전에 실행된 쿼리문이 SQL 파일로 저장이 되어 있다면 GET 명령어를 사용해 재실행 시킬 수 있습니다.
get a001
/
GET 다음에 파일 이름을 기술하여 원하는 쿼리문을 SQL 버퍼로 불러올 수 있습니다.
유용한 명령어
set linesize 120;
라인 한 줄에 출력 될 문자의 수를 120으로 조정해 줍니다.
set pagesize 13
한 페이지에 10 줄의 데이터를 볼 수 있습니다.
총 13줄의 데이터를 볼 수 있지만 컬럼 제목, 컬럼 제목과 데이터 구분선, 페이지를 구분하기 위한 공백 라인 이렇게 총 3 라인이 할당되므로 실제 페이지에는 10 줄의 데이터가 표시됩니다.
DESC EMP
각 컬럼이 숫자 형태인지 문자 형태인지 알 수 있습니다.
또 컬럼에 저장할 수 있는 최대 크기도 알 수 있습니다.
column ename format a10
/
문자 형식의 컬럼의 출력 길이를 지정할 수 있습니다.
위에서 ename 옆에 공백이 아래에선 많이 줄어든 것을 볼 수 있습니다.
'Data Base > SQL' 카테고리의 다른 글
[SQL] : WHERE 문으로 조건에 맞는 데이터 검색하기 (0) | 2021.11.28 |
---|---|
[SQL] : SQL 편집 명령어 (0) | 2021.11.27 |
[SQL] : Concatenation 연산자와 Distinct 키워드 (0) | 2021.11.15 |
[SQL] : 컬럼 이름에 별칭 부여하기 (0) | 2021.11.15 |
[SQL] : NULL (널) (0) | 2021.11.15 |
댓글