1. Substitution Variable (치환변수)
& : 변수가 한 번 사용되고 메모리에서 사라진다.
&& : 한 번 입력한 변수는 CLEAR하기 전까지 계속 메모리에 남아있다.
DEFINE : 현재 DEFINE 된 모든 것들을 보여준다.
DEFINE 변수명 : 지정한 변수명의 DEFINE 사항을 보여준다.
UNDEFINE 변수명 : 지정한 변수명의 DEFINE 상태를 CLEAR한다.
ACCEPT : 변수를 입력하라고 물어보는 Prompt의 Text를 변경할수 있다.
USER가 입력하는 값을 HIDE시킬수가 있다.
DataType의 Format을 변경할수가 있다.
2. & 치환변수 사용예
SELECT empno, ename, sal, deptno
FROM emp
WHERE empno = &employee_num
3. && 치환변수 사용 예
--> 한번만 물어보게 된다.
SELECT empno, ename, job, &&column_name
FROM emp
ORDER BY &column_name
4. 변수 값이 character or date value일때 꼭 single quotation mark로 묶어 줘야 한다.
SELECT ename, deptno, sal*12
FROM emp
WHERE job = '&job_title'
5. 종합적인 예제
--> 어떤 절에나 사용해도 된다.
SELECT empno, ename, job, &column_name
FROM emp
WHERE &condition
ORDER BY &order_column
6. ACCEPT 사용예 (file로 만들어서 START시켜야 한다.)
ACCEPT dept PROMPT 'Provide the department name: '
SELECT *
FROM dept
WHERE dname = UPPER('&dept')
/
Provide the department name: Sales
처리된 결과값...
7. 파일로 만들어서 치환변수를 여러개 처리할때 예제
test.sql
SELECT &1 FROM &2
SQL> @test empno emp
==> &1에 empno, &2에 emp가 들어간다.
8. SET command 변수
ARRAYSIZE {20 | n} : 데이터 fatch size
COLSEP {_ | text} : column seperator
FEEDBACK {6 | n | OFF | ON}
HEADING {OFF | ON} : column heading 출력
LINESIZE {80 | n} : 가로 80 으로 출력
PAGESIZE {50 | n} : 세로 50 으로 출력
LONG {80 | n} : long date type의 데이터를 출력할때 80byte까지만 보여주겠다.
PAUSE {OFF | ON | text} : text에 문자열을 넣으면 pause될때마다 메세지를 보여준다.
TERMOUT {OFF | ON} : 결과를 화면에 보여주겠는가?
VERIFY {OFF | ON} : 치환변수의 old값과 new값을 보여주면서 결과가 처리된다.
* SHOW {SET command 명} : SET command명의 현재 상태를 보여준다. (예: SQL> SHOW ECHO)
* SHOW ALL : 모든 SET command의 현재 상태를 보여준다.
* SET 상태를 바꿔 주려면...
SQL> SET PAUSE ON <-- 이런식으로 하면 된다.
* DEFINE command나 SET command는 자신의 환경파일(login.sql)에 일괄적으로 처리할수 있다.
* glogin.sql은 oracle superuser용 환경파일이다.
* SQL Plus command가 다음줄로 이어질때는 (-)으로 연결한다.
9. REPORT 출력 예제
Fri Oct 24 Page 1 |
SET PAGESIZE 37 --> 세로 37로 출력
SET LINESIZE 60 --> 가로 60으로 출력
SET FEEDBACK OFF
TTITLE 'Employee|Report' --> Top Title을 Employee 다음줄에 Report를 쓰겠다.
BTITLE 'Confidential' --> Bottom Title을 Confidential로 쓰겠다.
COLUMN job HEADING 'Job|Category' FORMAT A15
--> job column Heading을 Job 다음줄에 Category로 쓰고 15byte의 자리수로 만들겠다.
COLUMN ename HEADING 'Employee' FORMAT A15
--> ename column Heading을 Employee로 쓰고 15byte의 자리수로 만들겠다.
COLUMN sal HEADING 'Salary' FORMAT $99,999.99
--> sal column Heading을 Salary로 쓰고 Format을 $99,999.99로 만들겠다.
REM ** Insert SELECT statement --> 주석문
SELECT job, ename, sal
FROM emp
WHERE sal < 3000
ORDER BY job, ename
* | : text를 두줄로 찍는다.
* REM : 주석문
'DATABASE > ORACLE' 카테고리의 다른 글
[SQL&PL/SQL] 22.Handling Exceptions (0) | 2012.07.11 |
---|---|
[SQL&PL/SQL] 17.Interaction with the Oracle Server (0) | 2012.07.11 |
[SQL&PL/SQL] 3.Single-Row Functions (0) | 2012.07.11 |
[Db Admin] 20.Managing Roles (0) | 2012.07.09 |
[Db Admin] 19.Managing Privileges (0) | 2012.07.09 |