Oracle8 Administrator's Reference for LINUX
Release 8.0.5

A66585-01

Library

Product

Contents

Index

Prev Next

4
리눅스에서 SQL*Plus 관리하기
(Administering SQL*Plus on Linux)

SQL*Plus 관리하기 (Administering SQL*Plus)

설정 파일들 (Setup Files)

SQL*Plus를 위한 설정 파일은, site profile을 설정하는 전체적인 설정파일인 glogin.sql과, 사용자 profile을 정의하는 login.sql이 있다. glogin.sql 과 login.sql files은 SQL*Plus session이 시작될 때 실행될 SQL문장이나 또는 SQL*Plus 명령어를 포함한다. 여러분들이 SQL*Plus를 실행할 때 glogin.sql 를 먼저 읽고 난 다음 login.sql를 읽게 된다.

The Site Profile

Site profile 파일은 $ORACLE_HOME/sqlplus/admin/glogin.sql이다. SQL*Plus는 사용자가 SQL*Plus를 시작할 때마다, 그리고 SQL*Plus가 오라클과의 연결을 시도할 때마다 명령어 파일을 실행한다. 기본적인 Site Profile은 SQL*Plus가 설치될 때마다 $ORACLE_HOME/sqlplus/admin에 놓이게 된다. 만약 Site Profile이 이미 존재한다면, 덮어 쓰기가 된다. SQL*Plus가 제거될 때에는 이미 있는 Site Profile도 제거된다.

사용자 프로파일 (User Profile)

User Profile file은 login.sql이다. SQL*Plus는 항상 사용자 프로파일을 현재 디렉토리에서 먼저 찾는다. SQL*Plus가 찾을 순서대로 사용자 프로파일이 있는 디렉토리를 SQLPATH라는 환경변수에 colon으로 분리된 디렉토리 리스트를 명시할 수 있다.

예를 들면, 만약 현재 디렉토리가 /u02/oracle 이고 SQLPATH 가 다음 과 같이 설정되어 있다면:

% echo $SQLPATH 
/home:/home/oracle:/u01/oracle 

SQL*Plus는 먼저 현재 디렉토리인 /u02/oracle에서 login.sql을 찾는다. 만약 여기서 발견할 수 없다면, SQL*Plus는 /home, /home/oracle 그리고 /u01/oracle 디렉토리를 각각 찾게 된다.

여기 login.sql file의 샘플이 있다:

set echo off
set feedback 4
set pause on
set pause "PLEASE PRESS RETURN TO CONTINUE"
set message on
set echo on

The PRODUCT_USER_PROFILE Table

SQL script인 $ORACLE_HOME/sqlplus/admin/pupbld.sql은 Product와 User Profile table을 만들기 위해서 사용자 SYSTEM으로서 실행될 것이다.

$ORACLE_HOME/sqlplus/admin/pupbld.sql 은 $ORACLE_HOME/bin/pupbld shell script를 이용해서 실행될 것이다. 이 스크립트를 실행하기 위해서는, 환경변수 ORACLE_HOME과 SYSTEM_PASS 가 반드시 설정되어 있어야 한다. SYSTEM_PASS는 SYSTEM의 사용자 이름과 암호를 반드시 설정해야 한다. 예를 들면:

% setenv SYSTEM_PASS SYSTEM/manager
% pupbld

Installing product user profile tables...

Product user profile tables installed.

만약 데이터베이스 객체가 선택된다면, pupbld.sql은 SQL*Plus 설치하는 동안 Installer에 의해서만 실행될 수 있다.

Demonstration Tables

SQL*Plus는 테스트를 위해서 사용될 데모 테이블이 포함되어 있다.

기본적인 설치 (Default Install)

만약 기본 설치를 이용하여 데이터베이스 객체를 생성하면, 사용자 SCOTT와 데모 테이블은 자동으로 생성될 것이다.

커스텀 설치 (Custom Install)

커스텀 설치를 이용하여 SQL*Plus를 설치할 때, 만약 Create Database Object를 선택하고, 여러분들이 "Would you like to load the SQL*Plus Demo Tables?"라는 질문에 'Yes'라고 답하면, Installer는 TIGER라는 암호를 가진 SCOTT라는 사용자를 만들고 데모 테이블을 생성한다.

수작업으로 데모 테이블 생성하기 (Creating Demonstration Tables Manually)

SQL 스크립트 $ORACLE_HOME/sqlplus/demo/demobld.sql는 데모 파일을 생성하기 위해 사용된다. demobld.sql 파일은 shcema에서 데모 테이블을 만들고 어떤 사용자로서 SQL*Plus 내에서 실행된다. 예를 들면:

% sqlplus scott/tiger 
SQL> @?/sqlplus/demo/demobld.sql 

$ORACLE_HOME/sqlplus/demo/demobld.sql는 shell script $ORACLE_HOME/bin/demobld를 이용하여 다음과 같이 실행될 것이다:

% demobld scott tiger

데모 테이블 지우기 (Deleting Demonstration Tables)

SQL script인 $ORACLE_HOME/sqlplus/demo/demodrop.sql은 데모 테이블을 drop 하는데 이용한다. demodrop.sql 파일은 사용자의 schema로 부터 데모 테이블을 drop 하기 위해서 어떤 사용자로서 SQL*Plus를 실행한다. 예를 들면:

% sqlplus scott/tiger 
SQL> @?/sqlplus/demo/demodrop.sql

$ORACLE_HOME/sqlplus/demo/demodrop.sql는 shell script $ORACLE_HOME/bin/demodrop를 이용해서 다음과 같이 실행할 수 있다:

% demodrop scott tiger


주의:

SQL scripts demobld.sql 와 demodrop.sql 둘다 table EMP, DEPT, BONUS, SALGRADE 그리고 DUMMY를 drop 시킨다. 여러분들은 반드시 schema 내에 같은 이름을 가진 테이블이 없다는 것을 확인해야 한다. 그렇지 않으면 자료를 소실하게 된다.

 

Help Facility

Default Install

만약 기본 설치와 Create Database Object를 선택하면, Help Facility는 자동으로 설치된다.

Custom Install

SQL*Plus를 설치할 때, 만약 Create Database Objects를 선택하고 여러분들이 "Would you like to load the SQL*Plus Help Facility?"라는 질문에 'Yes'라고 대답했다면, Installer는 Help Facility를 생성하게 된다.

Installing the Help Facility Manually

Help Facility는 $ORACLE_HOME/bin/helpins shell script를 이용해서 수작업으로 설치할 수 있다. 이 스크립트를 이용하기 위해서는 환경변수 ORACLE_HOME 과 SYSTEM_PASS가 반드시 설정되어 있어야 한다. SYSTEM_PASS는 SYSTEM의 사용자 이름과 암호가 설정되어 있어야 한다. 예를 들면:

$ setenv SYSTEM_PASS SYSTEM/manager 
$ helpins

	SQL*Loader: Release 8.0.5.0.0 - Production

(c) Copyright 1998 Oracle Corporation.  All rights reserved.

Commit point reached - logical record count 828

SQL*Loader: Release 8.0.5.0.0 - Production

(c) Copyright 1998 Oracle Corporation.  All rights reserved.

Commit point reached - logical record count 1024 
Commit point reached - logical record count 1207

SQL*Loader: Release 8.0.5.0.0 - Production

(c) Copyright 1998 Oracle Corporation.  All rights reserved.

Commit point reached - logical record count 1024 
Commit point reached - logical record count 1304 
Commit point reached - logical record count 2328 
Commit point reached - logical record count 2724 
Commit point reached - logical record count 2835 

참조:

SQL*Plus User's Guide and Reference를 참조하라. 그리고 README file과 $ORACLE_HOME/sqlplus/doc/release.doc도 참조하라.

 

SQL*Plus 사용하기

SQL*Plus의 시스템 편집기 이용하기 (Using System Editor from SQL*Plus)

SQL*Plus 프람프트에서 ed 또는 edit 명령어를 입력하면, ed, emacs, ned 또는 vi와 같은 기본적인 시스템 편집기를 호출한다. 여러분들의 PATH 환경변수에는 이들 편집기의 디렉토리가 포함되어 있어야 한다.

전체적인 기본 편집기는 glogin.sql내에서 SQL*Plus _editor option을 이용해서 DBA에 의해 설정된다. 이 설정을 다른것으로 바꾸기 위해서는 login.sql내에 편집기를 명시 해 주어야 한다. 두 파일 다 SQL*Plus가 시작시에 읽어 들이게 되는 데 local file이 우선권을 가지게 된다. _editor option 은 두 파일 어디서든지 SQL*Plus 세선동안에 설정될 수 있다.

만약 _editor option이 설정되어 있지 ㅇ낳으면, EDITOR와 VISUAL 이라는 환경변수가 SQL*Plus editor를 설정하게 된다. 그들은 사용자의 시작 파일이나 또는 시스템 프롬프트에서 설정된다. 만약 둘다 설정되어 있으면 EDITOR라는 변수가 이용된다.

Editor의 순서 설정하기

SQL*Plus는 다음 순서에 따라 기본 편집기를 설정하게 된다:

  1. The _editor SQL*Plus session동안 설정된 변수.
  2. login.sql 내에 있는 _editor 변수.
  3. glogin.sql 내에 있는 _editor 변수.
  4. EDITOR 환경 변수.
  5. VISUAL 환경 변수.

이들 변수 중 어느것도 설정되어 있지 않은 경우, SQL*Plus는 ed를 사용한다.

_editor option의 설정

login.sql file내에 다음 줄을 추가하여 SQL*Plus _editor option을 설정한다:

define _editor=editor_name

여기서 editor_name 는 리눅스의 편집기 이름이다.

환경 변수 설정하기

Bourne 또는 Korn shell에서는, 다음과 같이 환경변수를 입력하여 기본 편집기를 설정한다:

$ LINUX_VAR=editor_name; export LINUX_VAR

C shell에서는, 다음과 같이 환경 변수를 입력하여 기본 편집기를 설정한다:

% setenv LINUX_VAR editor_name

환경변수 문법은 Table 4-1에 설명되어 있다.

Table 4-1 LINUX 환경변수를 위한 문법

LINUX_VAR

 

EDITOR 또는 VISUAL 환경 변수

 

editor_name

 

LINUX 편집기 (에를 들면, vi 또는 ed)

 

기본 설정 (Default Settings)

만약 여러분들이 system editor를 호출할 경우, 현재의 SQL buffer는 edit buffer 내에 놓이게 되고 편집기에서 이용가능한 모든 명령어는 SQL 문장을 바꿀수 있다. SQL*Plus는 afiedt.buf 라는 임시파일을 사용한다. 여러분들이 편집기를 종료할 때, 바뀐 SQL buffer는 SQL*Plus로 돌아가게 된다.

SQL*Plus에서 운영체계 명령어 실행하기

SQL*Plus 프롬프트 바로뒤 첫글자로 느낌표 (!)를 적어 주면 바로 뒤이어 오는 문자열들은 sub-sell로 전달시키라는 것을 의미 한다. SHELL 환경변수에서 여러분들이 명령어를 실행시킬 shell의 종류를 선택한다. 기본 shell은 /bin/sh (sh)이다. 만약 shell을 실행할 수 없다면, error message가 출력될 것이다.

다음 SQL*Plus commands를 이용하여 특수한 작업을 수행한다:

Interrupting SQL*Plus

SQL*Plus를 실행하는 중간에:

SPOOL 명령어 이용하기 (Using the SPOOL Command)

SPOOL 명령어에 의해서 생성되는 파일의 기본 확장자는 .lst이다. 이 확장자를 변경하기 위하여, period (.)를 포함하는 spool 파일을 명시해야 한다.

예를 들면:

SQL> SPOOL query.lis

제한점 (Restrictions)

COPY Command

SQL*Plus에서 COPY 명령어는 같은 버젼의 운영체계가 실행중인 다른 machine에 대해서도 제한없이 지원된다.

COPY는 다른 버젼의 운영체계를 운영중인 machine 사이에도 작동한다. 만약 COPY가 실패할 경우, rcp나 ftp를 이용하여 접속하여 검사하기 바란다. 제한점은 각각의 회사에서 제공하는 넷트워킹 소프트웨어에서 시스템 사이에서 적절히 동작하는 rcp, ftp 또는 COPY 명령을 막을 수도 있다는 것이다.


주의:

rlogin 명령어는 큰 자료 패킷을 주고 받을수는 없다. 그리고 접속 검사를 위해서는 적절하지 못한 방법이다.

 

만약 COPY가 시스템들 간에 기능을 하지 않는다면, 여러분들이 copy하기를 원하는 테이블을 가르키는 사용자 ID 와 시스템으로 데이터베이스 링크를 생성해 두어라. 이렇게 하기 위해서 다음과 같이 입력하라:

SQL> create table newtable as \
(SELECT * FROM table@database_link_name)

이것은 원격 시스템에 들어가 있는 데이터베이스로 부터 rows와 columns을 select 해내어 로컬 시스템에 새로운 테이블로 입력하여 준다.

Resizing Windows

SQL*Plus LINESIZE 의 기본값은 80이며 PAGESIZE의 기본 값은 25이다. 이들 변수들은 윈도우의 크기에따라 자동으로 설정되지 않는다.

Return Value

LINUX의 복귀값은 오직 한 바이트만이 이용가능하다. 이것은 오라클의 에러코드를 돌려주는데 충분하지 못하다. 복귀값의 범위는 0 부터 255까지 이다.




Prev

Next
Oracle
Copyright © 1998 Oracle Corporation.

All Rights Reserved.

Library

Product

Contents

Index