1. SQL*PLUS의 편집 : 편집기의 작업을 이용,,, 오라클 작업을 더욱 능률적으로 할 수 있다.
A. LIST (L) : SQL버퍼의 내용을 보여준다.
- L : 모든내용
- L3 : 세번째 줄.
- L2 4 :두번째 줄에서 4번째
- 3 : 세번째 줄만
B. APPEND (A) : 현재 작업라인의 끝에 문자열 추가
- 2 ; 두번째라인으로 POINT를 옮긴 후
- A FROM ; FROM을 두번째 라인 뒤에 추가시킨다.
C. CHANGE(C) : 고치고자 하는 OLD문자를 새로운 문자로 바꾼다.
형식 : C/OLD문자 /NEW문자
- C/*/ENAME
D. DEL : 현재 작업라인을 삭제한다.
E. INPUT(I) : 현재 작업위치아래에 새로운 라인을 삽입
- I 문자열: 한 라인 추가
- I : 여러 라인 추가. 종료시는 CTRL+C.
** CLEAR SCREEN : CTRL+DEL
** SPOOL : 화면에서 사용한 기록들을 하나의 화일로 저장한다.
2. 메모장을 이용한 SQL*PLUS의 편집:
: 여러개의 명령을 메모장에서 호출해서 한꺼번에 수행하며, 명령이 길어 오타가 나기 쉬울때 메모장에서 쉽게 고칠수 있으므로 유용하게 쓰일 수 있다.
1> edit a
-- a.sql 이라는 화일을 메모장에 저장
2> 메모장에 명령어 입력후 저장
3> @ a 또는 START a : a.sql 을 메모장에서 수행.
보고서 환경설정/머리말,꼬리말 설정
1. REPORT 만들 수 있는 두가지 방법
- Delvelp/2000의 Report을 이용시 전문적인 보고서를 만들 수 있다.
(다른 Tool를 사용시)
- SQL*PLUS의 REPORT을 이용(간단한 방법)
2. 보고서 환경 설정
- 1. 문서폭, 라인 등을 설정
- 2. 형식> SET 명령 숫자값 (on/off )
Option /
Set Auto Commit on/Off
(자동으로 Transaction작업을 실행)(Commit,Rollback작업이 안됨)
Set Pause on/Off //검색 작업시 자료량이 많아 Page별로 출력
Set Pagesize 10 // Page Row을 설정 /set Pagesize 5
Set Pause ‘아무거나 누르세요’
Set New Page n : 윗쪽 여백Line수를 설정
Set Heading on/Off : 필드명의 보임,안보임
Set Null ‘TEXT’ : Null값을 text문자로 표현
Set Null ‘없다’ : Null값을 없다로 표현
Set Null ‘’ : Null값을 공백으로 표현
Set Space n : 컬럼과컬럼사이의 공백
Set LineSize n : 출력할 페이지의 폭을 설정
Set UnderLine '*’:필드명과 레코드 사이의 것을 어느것을 사용할 지 결정
프로그램을 설정하면 Option으로 설정된 값은 모두 Default로 된다.
3 .머리말,꼬리말(TITLE)에 대한 설정
- 형식)
TTITLE
BTITLE
[col n] ‘머리말 꼬릿말 내용’
[skip n]
[left]
[right]
[center]
- TTITLE on/Off : 머리말,꼬리말 을 표시할거냐
- BTITLE on/OFF : 머리말,꼬리말 을 표시할거냐 한번 설정하면 반복 사용할 수 있다.
- Ttitle : 현재 설정된 상태를 보여준다.
- Btitle : 현재 설정된 상태를 보여준다.
SQL>ttitle center '사원보고서'
SQL> btitle left '작성자:대호'
SQL> btitle off
SQL> btitle on
SQL> ttitle col 10 '보고서'
SQL> ttitle col 10 '보고서' skip 2 center '대호주식회사'
--보고서를 10칸 띈후 출력하고,
두줄을 띈 후에 대호주식회사를 가운데 출력
SQL> set pagesize 6
SQL> ttitle left 'page:' col8 SQL.pno
--Ttitle에 페이지번호를 왼쪽에서 8칸 띈후 자동으로 출력 시친다.
18.Column명령을 이용한 보고서 만들기
1. Col에 대한 설정
- Heading을 영구히 설정된 값으로 설정 ( 필드명을 착각하지말 것)
2. 형식
Column |
대상 |
[Heading 문자열’] |
컬럼의 Heading명을 설정 |
컬럼명 |
[format 형식 ] |
컬럼의 자료의 표현 형식 설정 | |
Heading명 |
[justifycenter,right,left] |
컬럼의 Heading명을 정렬 | |
[new _value 변수] |
해당페이지에서 첫번째로 나오는 컬럼의 자료값을 의미 | ||
[old_value 변수] |
해당페이지에서 마지막으로 나오는 컬럼의 자료값을의미 | ||
[noprint] |
해당컬럼을 출력하지않겠다. | ||
[newline] |
해당컬럼에서 줄바꾸기를 하겠다. | ||
[clear] |
해당컬럼에 대한 설정을 해제 |
- clear columns : 모든컬럼에 대한 설정을 해제하게된다.
3. FORMAT 형식;
9 :숫자한자리
0 : 숫자한자리(빈자리는 0으로 채운다)
, : ,출력
. : .출력
$ ; $를 붙인다.
EEEE :지수로 표시
An - 문자의 폭을 n Byte로 설정
SQL> column saname new_value v_a
SQL> column saname old_value v_b
SQL> ttitle center v_a
SQL> btitle center v_b
SQL> select * from sawon;
SQL> column sapay format '99,999,999.99'
SQL> column deptno newline
SQL> select * from sawon;
SQL>column saname format A10
--saname의 크기를 10자로 지정
SQL> column saname format ‘$99,999,999.99’
SQL> column sapay format ‘099,999,999.99’
SQL> column sapay heading '급여' format '099,999,999.99'
SQL> column deptno like sapay heading '부서코드' //sapay의 column형식을 쓰겠다.
SQL> select * from sawon;
19.BREAK를 이용한 보고서
*** BREAK 명령어(그룹 설정)
- 보고서 작성시 출력데이타를 Group별로 묶어서 출력한다.
- 계산된 결과는 나오지 않고 리스트로 나온 것을 그룹별로 묶어서 출력
BREAK on |
col명1 |
On |
col명2… |
여러 개의 그룹설정 |
BREAK on row |
1라인을 하나의 group으로 설정 |
BREAK on page |
1page을 하나의 그룹으로 설정 |
BREAK on report |
전체보고서를 그룹으로 설정 |
BREAK on break 종류 [skip n] on break 종류 |
break의 기본예제
SQL> break on daptno;
--dept 그룹으로 묶어서 출력
SQL> select deptno,saname,sajob from sawon order by deptno;
-- 그룹화된 보고서가 부서별로 출력되어 있다.
-- 주의할 점은 반드시 order by 를 이용 소트를 시켜야 한다,..
소트시키지 않을 경우 에러가 발생
두개의 그룹 설정
SQL> break on deptno page on sasex skip 1;
-- 1.deptno, 2.sasex 두 개의 그룹화시켜 출력
SQL> select deptno,saname,sajob, sasex from sawon order by deptno, sasex;
SQL> clear break;
20.COMPUTE를 이용한 보고서
** 그룹별 소계(Compute)
- 형식: compute group 함수 [Label'문자열'] of 컬럼명,컬럼명 on break한 컬럼
- 항상 break 문이 먼저 그룹을 설정 후, compute 문으로 그룹의 소계을 계산 할 수 있다.
부서별 성별 합계 계산
SQL> break on deptno page on sasex skip1;
SQL> compute sum of sapay on sasex deptno;
--부서별 그룹합계 계산
SQL> compute count of saname on deptno, sasex;
-- 부서별, 성별, saname의 수 합계 계산
SQL> select deptno, sasex, saname, sapay from sawon order by deptno, sasex;
LABEL 붙이기
SQL> compute sum LABEL '급여합' of sapay on deptno sasex;
SQL> select deptno, sasex, saname, sapay from sawon order by deptno, sasex;
Report 이용 모든 데이타 계산
--전사원에대한 합계는 어떻게???
SQL> break on deptno on sasex ON report;
--report는 모든 데이타를 대상으로 할 때 지정한다.
SQL> compute sum of sapay on deptno report;
SQL> compute count of saname on REPORT;
SQL> select deptno, sasex, saname, sapay from sawon order by deptno, sasex;
--전체에 대한 sapay의 합계 ,인원수가 출력 된다
'Oracle' 카테고리의 다른 글
oracle 프로시져 검색 (0) | 2012.01.11 |
---|---|
오라클 테이블 락 ( Table lock ) 확인 (0) | 2012.01.10 |
PL/SQL (0) | 2011.12.21 |
Oracle Pipelined Table Function 의 용도 (0) | 2011.12.21 |
SPLIT 함수 (0) | 2011.12.21 |