tbSQL

Tibero DB SQL 문장을 처리하는 대화형 tbSQL 유틸리티 사용 방법을 설명합니다.

개요

tbSQL은 Tibero®(이하 Tibero)에서 제공하는 SQL 문장을 처리하는 대화형 유틸리티입니다. 이 유틸리티로 SQL 질의, 데이터 정의어(DDL: Data Definition Language), 트랜잭션과 관련된 SQL 문장을 실행할 수 있습니다. 또한, PSM 프로그램을 생성하고 실행할 수 있으며 DBA는 Tibero의 시스템 관리를 위한 명령을 실행 할 수 있습니다.

tbSQL은 이러한 기본 기능 외에도 자동 커밋을 설정하거나 운영체제 관련 명령어의 실행, 출력 저장, 스크립트 기능 등을 제공합니다. 특히 스크립트 기능은 여러 SQL 문장 및 PSM 프로그램, tbSQL 유틸리티의 명령어를 하나의 스크립트 파일로 생성할 수 있어 편리합니다.

tbSQL 유틸리티는 Tibero의 유틸리티 중에서 가장 빈번히 사용되는 것 중의 하나이며, SQL 문장의 실행 이외에 다음과 같은 기능을 제공합니다.

  • 일반적인 SQL 문장 및 PSM 프로그램의 입력, 편집, 저장, 실행

  • 트랜잭션의 설정 및 종료

  • 스크립트를 통한 일괄 작업의 실행

  • DBA에 의한 데이터베이스 관리

  • 데이터베이스의 기동 및 종료

  • 외부 유틸리티 및 프로그램의 실행

  • tbSQL 유틸리티의 환경설정


빠른 시작

tbSQL 유틸리티는 Tibero를 설치하는 과정에서 함께 설치되며, Tibero를 제거하면 함께 제거됩니다.

실행

tbSQL 유틸리티를 실행하는 방법은 다음과 같습니다.

tbSQL 유틸리티의 실행

tbsql

tbSQL 7

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

tbSQL 유틸리티가 정상적으로 실행되면 위 예제처럼 SQL 프롬프트가 나타납니다. 이 프롬프트에서 데이터 베이스 사용자는 SQL 문장을 실행할 수 있습니다.

tbSQL 유틸리티를 실행하는 명령어의 문법은 다음과 같습니다.

사용법

tbsql [[options]|[connect_string]|[start_script]]
  • [options]

항목

설명

-h, --help

도움말 화면을 출력한다.

-v, --version

버전을 출력한다.

-s, --silent

화면에 시작 메시지와 프롬프트를 출력하지 않는다.

-i, --ignore

로그인 스크립트(tbsql.login)를 실행하지 않는다.

  • [connect_string]

Tibero에 접속하려는 사용자의 계정에 대한 정보를 포함하며, 다음과 같은 형식으로 지정합니다.

username[/password[@connect_identifier]]

다음은 connect_string에 사용할 수 있는 항목입니다.

항목

설명

username

사용자명으로 대소문자를 구분하지 않는다. 만약 대소문자를 구분해야 한다면 이스케이프 문자(\)를 포함한 큰따옴표(" ")로 감싸야 한다.

password

사용자가 설정한 패스워드의 유형에 따라 대소문자를 구분해야 하는 경우도 있다.

connect_identifier

데이터베이스에 대한 접속 정보를 가진 DSN(Data Source Name)이거나 정해진 규칙의 연결 명세서이다.

  • [start_script]

tbSQL 유틸리티의 시작과 함께 실행할 스크립트 파일을 설정할 수 있으며, 다음과 같은 형식으로 지정합니다.

@filename[.ext] [parameter ...]

다음은 start_script에 사용할 수 있는 항목입니니다.

항목

설명

filename

파일명이다.

ext

파일의 확장자로, 지정하지 않을 경우 SUFFIX 시스템 변수에 지정된 확장자가 기본값이다.

parameter

파일에 사용된 치환변수 값이다.

데이터베이스 접속

tbSQL 유틸리티를 실행한 후 SQL 프롬프트가 나타나면 데이터베이스에 접속할 수 있는 상태가 됩니다.

tbSQL 유틸리티는 데이터베이스의 세션을 시작하기 전에 수행해야 할 작업이 있을 경우 tbsql.login 파일을 작성하면 됩니다. 이 파일이 현재 디렉터리에 있는 경우에는 바로 실행하고, 그렇지 않은 경우에는 환경변수TB_SQLPATH에 설정된 디렉터리에서 찾습니다.

tbSQL 유틸리티를 이용하여 데이터베이스에 접속하는 방법은 다음과 같습니다.

tbSQL 유틸리티를 이용한 데이터베이스 접속

$ tbsql SYS/syspassword

tbSQL 7

TmaxData Corporation Copyright (c) 2008-. All rights reserved. 

Connected.

위 예에서는 UNIX 셸 프롬프트에서 tbSQL 유틸리티의 실행과 함께 사용자명과 패스워드를 입력합니다.

사용자명패스워드를 입력할 때에는 다음과 같은 규칙이 있습니다.

항목

설명

사용자명

스키마 객체의 이름과 마찬가지로 대소문자를 구분하지 않는다. 단, 큰따옴표(" ")에 사용자명을 입력하는 경우는 예외다.

패스워드

사용자가 설정한 패스워드의 유형에 따라 대소문자를 구분해야 하는 경우도 있다.

tbSQL 유틸리티를 이용한 데이터베이스 접속 예시와 같이 connect_identifier를 생략하는 경우엔 디폴트 데이터베이스에 접속이 됩니다. 만약 특정 데이터베이스에 접속하고자 하는 경우엔 connect_identifier를 명시하면 되고, 아래와 같은 두가지 형식으로 사용할 수 있습니다.

  • DSN(Data Source Name) DSN은 tbdsn.tbr 파일이나 Windows에서의 데이터 원본(ODBC)에 정의된 이름을 명시하는 방법입니다. 아래는 tbdsn.tbr 파일의 설정 예입니다.

tibero7=(
    (INSTANCE=(HOST=192.168.36.42) 
              (PORT=8629)
              (DB_NAME=tibero7)
          )
)

위와 같이 정의된 경우 접속하는 방법은 아래와 같습니다.

$ tbsql tibero/tmax@tibero7

  • 연결 명세서 연결 명세서는 tbdsn.tbr 파일을 사용하지 않고, 직접 접속 정보를 명시하는 방법으로 아래 두 가지 형식으로 사용할 수 있습니다.

– 방법1

(INSTANCE=(HOST=host)(PORT=port)(DB_NAME=dbname))

사용 예

$ tbsql 'tibero/tmax@(INSTANCE=(HOST=192.168.36.42)(PORT=8629)(DB_NAME=tibero7))'

– 방법2

host:port/dbname

사용 예

$ tbsql 'tibero/[email protected]:8629/tibero7'

인터페이스

아래는 tbSQL 유틸리티를 실행했을 때의 화면입니다.

$ tbsql 

tbSQL 7

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

SQL> CONNECT dbuser
Enter password : dbuserpassword 
Connected to Tibero.

위의 예에서는 tbSQL 유틸리티를 실행한 뒤 CONNECT 명령어를 통해 dbuser라는 사용자명으로 데이터 베이스에 접속했습니다. tbSQL 유틸리티는 이처럼 텍스트 모드의 화면에서 입력을 받고, 사용자의 요구에 따라 결과를 출력합니다.

본 안내서에서는 특별한 경우를 제외하고는 모든 SQL 문장과 PSM 프로그램, tbSQL 유틸리티의 명령어를 대문자로 표현합니다. (명령어의 파라미터로 소문자가 사용된 경우는 다른 파라미터로 확장될 수 있는 경우입니다.)

tbSQL 유틸리티는 아래와 같은 특성을 가진 인터페이스로 실행합니다.

  • tbSQL 유틸리티가 정상적으로 실행되면 SQL 프롬프트가 출력됩니다. 프롬프트에서 SQL 문장, PSM 프로그램, tbSQL 유틸리티의 명령어를 입력할 수 있습니다.

  • 여러 라인에 걸쳐 입력할 수 있습니다. SQL 문장과 PSM 프로그램은 입력과 실행을 분리할 수 있습니다. 하지만 tbSQL 유틸리티의 명령어는 입력과 동시에 실행됩니다.

  • 대소문자를 구분하지 않습니다. SQL 문장 내의 문자열 데이터처럼 특별한 경우를 제외하고는 대소문자를 구분하지 않습니다. 예를 들어 아래 두 문장은 서로 같은 의미입니다.

SQL> SET AUTOCOMMIT ON
SQL> set autocommit on

환경설정

tbSQL 유틸리티의 사용 환경을 설정하려면 SET 명령어를 사용해야 합니다. SET 명령어를 통해 SQL 질의를 수행한 결과의 출력 형태, 트랜잭션의 커밋 여부 등을 설정할 수 있습니다.

SET 명령어 문법

SET [system_variable] [system_variable_value]

자세한 내용은 “시스템 변수”를 참고합니다.

종료

tbSQL 유틸리티를 종료하려면 SQL 프롬프트에서 EXIT 또는 QUIT 명령어를 입력해야 합니다.

SQL> EXIT

tbSQL 유틸리티에서 제공하는 명령어에 대한 자세한 내용은 “명령어”를 참고합니다.


시스템 변수

본 절에서는 tbSQL 유틸리티의 시스템 변수에 대하여 설명합니다. tbSQL 유틸리티의 시스템 변수에 설정할 값은 SET 명령어로 설정하고, SHOW 명령어로 출력합니다.

아래는 SET 명령어에서 설정할 수 있는 시스템 변수를 요약한 표입니다.

시스템 변수

기본값

설명

AUTOCOMMIT

OFF

자동 커밋 여부를 설정하는 시스템 변수입니다.

AUTOTRACE

OFF

수행 중인 질의의 플랜이나 통계 정보의 출력 여부를 설정하는 시스템 변수입니다.

BLOCKTERMINATOR

"." (0x2E)

PSM 문장에서 입력의 마지막을 나타내는 문자를 설정하는 시 스템 변수입니다.

COLSEP

" " (0x20)

SQL 문장 중 조회 쿼리에 대한 수행 결과를 보여줄 때 컬럼 사 이를 구분하는 문자를 지정하는 시스템 변수입니다.

CONCAT

"." (0x2E)

치환 변수 이름의 끝을 나타내는 문자를 설정하는 시스템 변수 입니다.

DDLSTATS

OFF

DDL 문장의 플랜이나 통계 정보의 표시 여부를 설정하는 시스 템 변수입니다.

DEFINE

"&" (0x26)

치환 변수를 정의할 때 사용할 문자를 지정하는 시스템 변수이 다.

DESCRIBE

DEPTH 10

DESCRIBE 명령어에서 보여줄 객체 명세의 단계를 지정하는 시스템 변수입니다.

ECHO

OFF

@ 또는 START 명령으로 스크립트 파일을 실행시킬 때 스크립 트 내에서 실행되는 쿼리의 화면 출력 여부를 결정하는 시스템 변수입니다.

EDITFILE

".tbedit.sql"

EDIT 명령어에서 사용하는 파일 이름의 기본값을 설정하는 시 스템 변수입니다.

ESCAPE

OFF

이스케이프 문자를 설정하는 시스템 변수입니다.

EXITCOMMIT

ON

유틸리티를 종료할 때 커밋 여부를 설정하는 시스템 변수입니다.

FEEDBACK

0

SQL 문장의 수행 결과를 화면에 출력할지를 설정하는 시스템 변수입니다.

HEADING

ON

쿼리 실행 결과를 출력할 때 컬럼의 머릿글 표시 여부를 설정하 는 시스템 변수입니다.

HEADSEP

"|" (0x7C)

머릿글의 줄바꿈 문자를 설정하는 시스템 변수입니다.

HISTORY

50

명령어 히스토리의 크기를 설정하는 시스템 변수입니다.

INTERVAL

1

LOOP 명령어에서 각 문장을 수행한 후 대기하는 시간을 설정 하는 시스템 변수입니다.

LINESIZE

80

한 라인에 출력할 문자 수를 설정하는 시스템 변수입니다.

LONG

80

VARCHAR보다 큰 문자형 타입의 데이터를 표시하기 위해 사 용할 문자 수를 설정하는 시스템 변수입니다.

MARKUP

OFF

유틸리티의 출력 내용을 HTML로 출력할 것인지를 설정하는 시스템 변수입니다.

NEWPAGE

1

각 페이지 시작 부분에 추가할 빈 줄 수를 설정하는 시스템 변 수입니다.

NUMFORMAT

""

숫자형 데이터의 기본 컬럼 포맷을 설정하는 시스템 변수입니다.

NUMWIDTH

10

숫자형 데이터의 기본 출력 길이를 설정하는 시스템 변수입니다.

PAGESIZE

24

한 화면에 출력할 라인 수를 설정하는 시스템 변수입니다.

PAUSE

OFF

한 페이지를 출력한 후 다음 페이지를 출력하기 전에 사용자 입 력을 기다릴지를 지정하는 시스템 변수입니다.

RECSEP

WRAPPED

로우 구분자를 출력할 단위를 지정하는 시스템 변수입니다.

RECSEPCHAR

" " (0x20)

로우 구분자로 사용할 문자를 설정하는 시스템 변수입니다.

ROWS

ON

질의문의 결과를 화면에 출력할 것인지를 설정하는 시스템 변 수입니다.

SERVEROUTPUT

OFF

DBMS_OUTPUT 패키지의 결과를 출력할 것인지를 설정하는 시스템 변수입니다.

SQLCODE

0

마지막으로 실행된 SQLCODE 값을 보여주는 시스템 변수이 다. 이 값은 SET으로 설정할 수 없다.

SQLPROMPT

"SQL> "

화면상의 프롬프트 문자를 설정하는 시스템 변수입니다.

SQLTERMINATOR

";" (0x3B)

SQL 문장을 종료하는 문자를 설정하는 시스템 변수입니다.

SUFFIX

"sql"

파일 확장자의 기본값을 설정하는 시스템 변수입니다.

TERMOUT

ON

스크립트에서 수행된 명령어의 결과를 화면에 출력할 것인지 를 설정하는 시스템 변수입니다.

TIMEOUT

3

PING 명령어에서 서버가 응답할 때까지 기다릴 시간을 설정하 는 시스템 변수입니다.

TIMING

OFF

SQL, PSM 문장의 결과를 출력할 때마다 수행 시간을 출력할 것인지를 설정하는 시스템 변수입니다.

TRIMOUT

ON

화면에 출력되는 라인 뒤에 오는 공백의 제거 여부를 설정하는 시스템 변수입니다.

TRIMSPOOL

OFF

스풀링 중인 라인 뒤에 오는 공백의 제거 여부를 설정하는 시스 템 변수입니다.

UNDERLINE

"-" (0x2D)

머릿글의 밑줄로 사용할 문자를 설정하는 시스템 변수입니다.

VERIFY

ON

명령을 실행할 때 치환변수가 적용된 내역에 대한 출력 여부를 설정하는 시스템 변수입니다.

WRAP

ON

출력할 라인이 긴 경우 나머지를 다음 라인에 출력할 것인지를 설정하는 시스템 변수입니다.

시스템 변수 설정 예시

SET AUTOCOMMIT ON 
SET PAGESIZE 32 
SET TRIMSPOOL ON

AUTOCOMMIT

INSERT, UPDATE, DELETE, MERGE 혹은 PSM 블록 등의 SQL 문장을 실행한 후 자동으로 커밋을 수행하도록 설정합니다.

문법

SET AUTO[COMMIT] {ON|OFF|n}

항목

설명

ON

자동 커밋을 수행한다.

OFF

자동 커밋을 수행하지 않는다. OFF로 설정한 경우에는 명시적으로 커밋을 수행해야 한다. (기본값)

n

n개의 INSERT, UPDATE, DELETE, MERGE 또는 PSM 블록을 성공적으로 수행한 후에 커밋을 수행한다. n이 0이면 OFF와 동일하고, 1이면 ON과 동일하다.

AUTOTRACE

수행 중인 질의의 플랜이나 통계 정보를 보여줍니다. DBA 권한 또는 PLUSTRACE 권한이 있어야 사용할 수 있습니다. PLUSTRACE는 AUTOTRACE에 필요한 특권들이 포함된 권한으로 DBA 권한을 가진 사용자가 생성하여 다른 사용자에게 부여할 수 있습니다. 생성 스크립트는 $TB_HOME/scripts/plustrace.sql입니다.

문법

SET AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] [PLANS[TAT]]
  • 입력 항목

항목

설명

ON

질의의 결과 및 추가 옵션에 따라 플랜 정보나 통계 정보를 출력한다.

OFF

플랜 및 통계 정보를 출력하지 않는다. (기본값)

TRACE[ONLY]

질의의 결과를 보여주지 않으며, 추가 옵션에 따라 플랜 정보나 통계 정보를 출력한다.

  • 옵션

아래는 플랜이나 통계 정보를 보여줄지를 지정하는 옵션입니다.

항목

설명

아무것도 명시하지 않으면 플랜과 통계 정보를 모두 보여준다.

EXP[LAIN]

플랜 정보를 보여준다.

STAT[ISTICS]

통계 정보를 보여준다.

PLANS[TAT]

질의에 대한 노드 별 수행 정보(수행 시간, 처리 로우 수, 수행 횟수 등)을 보여준다.

BLOCKTERMINATOR

PSM 문장에서 입력의 마지막을 나타내는 문자를 설정합니다.

문법

SET BLO[CKTERMINATOR] {c|ON|OFF}

항목

설명

c

PSM 프로그램 입력을 마치는 것을 나타내는 문자이다. (기본값: ".")

ON

BLOCKTERMINATOR를 활성화한다. (기본값)

OFF

BLOCKTERMINATOR를 비활성화한다.

COLSEP

SELECT 문장을 실행한 후 출력되는 여러 컬럼 사이의 구분을 나타내는 문자를 설정합니다.

문법

SET COLSEP {text}

항목

설명

text

컬럼 사이를 구분짓는 문자이다. (기본값: " ")

CONCAT

치환 변수 이름의 끝을 나타내는 문자를 설정합니다.

문법

SET CON[CAT] {c|ON|OFF}

항목

설명

c

치환 변수 이름에 대한 종료 문자이다. (기본값: ".")

ON

CONCAT을 활성화한다. (기본값)

OFF

CONCAT을 비활성화한다.

DDLSTATS

수행 중인 DDL 문장의 플랜이나 통계 정보를 보여줍니다. 단, 주의할 점은 AUTOTRACE 기능도 반드시 활성화시켜야 합니다.

문법

SET DDLSTAT[S] {ON|OFF}

항목

설명

ON

DDLSTATS를 활성화한다.

OFF

DDLSTATS를 비활성화한다. (기본값)

DEFINE

치환 변수를 정의할 때 사용할 문자를 설정합니다.

문법

SET DEF[INE] {c|ON|OFF}

항목

설명

c

치환 변수를 나타내는 문자이다. (기본값: "&")

ON

DEFINE을 활성화한다. (기본값)

OFF

DEFINE을 비활성화한다.

DESCRIBE

DESCRIBE 명령어를 통한 객체 명세를 어느 단계까지 보여줄지를 설정합니다.

문법

SET DESCRIBE DEPTH {n}

항목

설명

n

재귀적으로 출력할 단계이다. (기본값: 10)

ECHO

@ 또는 START 명령으로 스크립트 파일을 실행시킬 때 스크립트 내에서 실행되는 쿼리의 화면 출력 여부를 설정합니다.

문법

SET ECHO {ON|OFF}

항목

설명

ON

ECHO를 활성화한다.

OFF

ECHO를 비활성화한다. (기본값)

EDITFILE

EDIT 명령어에서 사용할 파일 이름의 기본값을 설정합니다. 확장자를 생략할 경우 SUFFIX에 설정된 값을 사용합니다.

문법

SET EDITF[ILE] filename[.ext]

항목

설명

filename[.ext]

EDIT 명령어에서 사용할 파일 이름이다. (기본값: .tbedit.sql)

ESCAPE

DEFINE에서 정의한 치환 변수 문자를 무시하도록 하는 이스케이프 문자를 설정합니다. 이스케이프를 활성화한 후 설정한 이스케이프 문자를 '&<문자열>' 앞에 붙여 쓰면, 치환 변수로 인식되지 않습니다.

문법

SET ESC[APE] {c|ON|OFF}

항목

설명

c

이스케이프 문자이다. (기본값: "\")

ON

ESCAPE를 활성화한다.

OFF

ESCAPE를 비활성화한다. (기본값)

EXITCOMMIT

유틸리티를 종료할 때 커밋 여부를 설정합니다.

문법

SET EXITC[OMMIT] {ON|OFF}

항목

설명

ON

EXITCOMMIT을 활성화한다. (기본값)

OFF

EXITCOMMIT을 비활성화한다.

FEEDBACK

SQL 문장의 수행 결과를 화면에 출력할지 설정합니다.

문법

SET FEED[BACK] {n|ON|OFF}

항목

설명

n

수행 결과를 화면에 출력하기 위한 최소 로우 개수이다. (기본값: 0)

ON

FEEDBACK을 활성화한다. (기본값)

OFF

FEEDBACK을 비활성화한다.

HEADING

쿼리 실행 결과를 출력할 때 컬럼의 머릿글 표시 여부를 설정합니다.

문법


SET HEA[DING] {ON|OFF}

항목

설명

ON

HEADING을 활성화한다. (기본값)

OFF

HEADING을 비활성화한다.

HEADSEP

머릿글의 줄바꿈 문자를 설정합니다.

문법

SET HEADS[EP] {c|ON|OFF}

항목

설명

c

줄바꿈 문자이다. (기본값: "|")

ON

HEADSEP을 활성화한다. (기본값)

OFF

HEADSEP을 비활성화한다.

HISTORY

명령어 히스토리의 크기를 설정합니다.

문법

SET HIS[TORY] {n}

항목

설명

n

명령어 히스토리의 크기이다. (기본값: 50)

INTERVAL

LOOP 명령어에서 각 수행이 끝난 후 대기하는 시간을 설정합니다.

문법

SET INTER[VAL] {n}

항목

설명

n

대기 시간으로 단위는 초다. (기본값: 1)

LINESIZE

화면상의 한 라인의 길이를 설정합니다. 라인 길이의 최솟값은 1이며, 최댓값은 운영체제에 따라 다릅니다.

문법

SET LIN[ESIZE] {n}

항목

설명

n

화면상의 한 라인의 길이이다. (기본값: 80)

LONG

CLOB이나 BLOB, NCLOB, LONG, XML 타입의 데이터를 읽어 와서 출력할 길이를 설정합니다. 길이는 2,000,000,000을 넘을 수 없습니다.

문법

SET LONG {n}

항목

설명

n

대용량 데이터의 기본 출력 길이이다. (기본값: 80)

MARKUP

유틸리티의 출력 내용을 HTML로 작성합니다.

문법

SET MARKUP HTML {ON|OFF} [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}] 
[SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]
  • 입력 항목

항목

설명

ON

MARKUP HTML을 활성화한다.

OFF

MARKUP HTML을 비활성화한다. (기본값)

  • 옵션 다음은 HTML 출력 세부 내용을 지정하는 옵션입니다.

항목

설명

HEAD text

<head> 태그에 포함할 내용을 지정한다. (기본값: 유틸리티 기본값)

BODY text

<body> 태그의 속성을 지정한다. (기본값: 없음)

TABLE text

<table> 태그의 속성을 지정한다. (기본값: 유틸리티 기본값)

ENTMAP ON

<, >, ", & 문자를 HTML 엔티티로 변환하는 기능을 활성화한다. (기본값)

ENTMAP OFF

<, >, ", & 문자를 HTML 엔티티로 변환하는 기능을 비활성화한다.

SPOOL ON

SPOOL 파일 처음과 마지막에 <html>과 <body> 태그를 작성해주는 기능을 활성화한 다.

SPOOL OFF

SPOOL 파일 처음과 마지막에 <html>과 <body> 태그를 작성해주는 기능을 비활성화 한다. (기본값)

PREFORMAT

ON

쿼리 수행 결과를 <pre> 태그에 작성한다.

PREFORMAT

OFF

쿼리 수행 결과를 HTML 테이블로 작성한다. (기본값)

MARKUP 기능은 Tibero 7 FS02 릴리즈부터 지원합니다.

NEWPAGE

각 페이지의 시작 부분에 추가할 빈 줄 개수를 설정합니다.

문법

SET NEWP[AGE] {1|n|NONE}

항목

설명

n

빈 라인 수 (기본값: 1)

NUMFORMAT

NUMBER 타입의 기본 컬럼 포맷을 설정합니다. COLUMN 명령으로 FORMAT이 정의된 것을 제외한 숫자형 컬럼에 적용됩니다.

문법

SET NUMF[ORMAT] {fmt_str}

항목

설명

fmt_str

NUMBER 타입 데이터의 기본 컬럼 포맷이다. 자세한 내용은 “컬럼 포맷”의 숫자형에 대한 설명을 참조한다. (기본값: "")

NUMWIDTH

NUMBER 타입을 출력할 길이를 설정합니다. LINESIZE를 넘을 수 없습니다.

문법

SET NUM[WIDTH] {n}

항목

설명

n

NUMBER 타입 데이터의 기본 출력길이 이다. (기본값: 10)

PAGESIZE

tbSQL 유틸리티에서 출력하는 내용이 포함되는 각 페이지 내의 라인 개수를 설정합니다.

문법

SET PAGES[IZE] {n}

항목

설명

n

한 페이지의 라인 개수이다. (기본값: 24)

PAUSE

한 페이지를 출력한 뒤 다음 페이지를 출력하기 전에 사용자 입력을 기다릴지를 설정합니다.

문법

SET PAU[SE] {ON|OFF}

항목

설명

ON

PAUSE를 활성화한다.

OFF

PAUSE를 비활성화한다. (기본값)

RECSEP

로우 구분자를 출력하는 단위를 설정합니다.

문법

SET RECSEP {WR[APPED]|EA[CH]|OFF}

항목

설명

WRAPPED

로우가 WRAPPING되는 경우 구분자를 출력한다. (기본값)

EACH

모든 로우 단위로 구분자를 출력한다.

OFF

RECSEP을 비활성화한다.

RECSEPCHAR

로우 구분자로 사용할 문자를 설정합니다. 이 구분자는 LINESIZE 값만큼 반복해서 출력됩니다.

문법

SET RECSEPCHAR {c}

항목

설명

c

로우 구분자이다. (기본값: " ")

ROWS

질의문의 결과를 화면에 출력할지를 설정합니다.

문법

SET ROWS {ON|OFF}

항목

설명

ON

ROWS를 활성화한다. (기본값)

OFF

ROWS를 비활성화한다.

SERVEROUTPUT

DBMS_OUTPUT 패키지의 결과를 출력할 것인지 설정합니다.

문법

SET SERVEROUT[PUT] {ON|OFF} [SIZE n]

항목

설명

ON

SERVEROUTPUT을 활성화한다.

OFF

SERVEROUTPUT을 비활성화한다. (기본값)

n

SERVEROUTPUT 버퍼 크기를 지정한다. (기본값: 1000000)

SQLCODE

가장 최근에 실행된 SQLCODE 값을 보여주는 시스템 변수입니다. 이 값은 SET으로 설정할 수 없습니다.

문법

SHOW SQLCODE

SQLPROMPT

화면상의 프롬프트 문자를 설정합니다.

문법

SET SQLP[ROMPT] {prompt_string}

항목

설명

prompt_string

프롬프트로 사용할 문자열이다. (기본값: "SQL>")이 문자열 안의 환경변수와 _user 식별자를 인식한다. 예를 들어 '$ISQL_PROMPT'라고 지정하면 환경변수 $ISQL_PROMPT의 값이 치환되어 프롬프트로 사용된다. 이때 환경변수의 이름은 대소문자를 구분한다. '_user'라고 지정하면 _user의 값이 현재 접속된 유저의 이름으로 동적으로 치환되어 프롬프트로 사용된다.

환경변수와 _user 식별자를 동시에 한 문자열 안에 포함시킬 수 있다. 문자열의 최대 길이는 128자로 제한된다.

SQLTERMINATOR

SQL 문장을 종료하는 문자를 설정합니다.

문법

SET SQLT[MINATOR} {c|ON|OFF}

항목

설명

c

SQL 문장의 종료를 알리는 문자이다. (기본값: ";")

ON

SQLTERMINATOR를 활성화한다.

OFF

SQLTERMINATOR를 비활성화한다.

SUFFIX

파일 확장자를 생략했을 때 사용할 파일 확장자를 설정합니다.

문법

SET SUF[FIX] {extension}

항목

설명

extension

기본으로 사용할 파일 확장자이다. (기본값: sql)

TERMOUT

스크립트에서 수행된 명령어의 결과를 화면에 출력할 것인지 설정합니다.

문법

SET TERM[OUT] {ON|OFF}

항목

설명

ON

TERMOUT을 활성화한다. (기본값)

OFF

TERMOUT을 비활성화한다.

TIME

프롬프트에 현재 시간을 출력할 것인지 설정합니다.

문법

SET TI[ME] {ON|OFF}

항목

설명

ON

TIME을 활성화한다.

OFF

TIME을 비활성화한다. (기본값)

TIMEOUT

PING 명령어에서 서버가 응답할 때까지 기다릴 시간을 설정합니다. (단위: 초)

문법

SET TIMEOUT {n}

항목

설명

n

서버의 응답을 기다리는 시간이다. (기본값: 3)

TIMING

SQL, PSM 문장의 실행 결과를 출력할 때마다 수행 시간을 출력할 것인지 설정합니다.

문법

SET TIMI[NG] {ON|OFF}

항목

설명

ON

TIMING을 활성화한다.

OFF

TIMING을 비활성화한다. (기본값)

TRIMOUT

SQL, PSM 문장의 실행 결과를 출력할 때마다 모든 라인의 뒤에 오는 공백을 제거할 것인지 설정합니다.

문법

SET TRIM[OUT] {ON|OFF}

항목

설명

ON

TRIMOUT을 활성화한다. (기본값)

OFF

TRIMOUT을 비활성화한다.

TRIMSPOOL

SQL, PSM 문장의 실행 결과를 스풀링할 때마다 모든 라인의 뒤에 오는 공백을 제거할 것인지 설정합니다.

문법

SET TRIMS[POOL] {ON|OFF}

항목

설명

ON

TRIMSPOOL을 활성화한다.

OFF

TRIMSPOOL을 비활성화한다. (기본값)

UNDERLINE

머릿글의 밑줄로 사용할 문자를 설정합니다.

문법

SET UND[ERLINE] {c|ON|OFF}

항목

설명

c

밑줄 문자이다. (기본값: "-")

ON

UNDERLINE을 활성화한다. (기본값)

OFF

UNDERLINE을 비활성화한다.

VERIFY

치환 변수가 포함된 명령을 실행할 때 치환 변수가 값으로 치환되는 결과의 출력 여부를 설정합니다.

문법

SET VER[IFY] {ON|OFF}

항목

설명

ON

VERIFY를 활성화한다. (기본값)

OFF

VERIFY를 비활성화한다.

WRAP

화면에서 출력된 라인이 LINESIZE 변수로 설정된 값보다 긴 경우 나머지를 다음 라인에 출력할 것인지 아니면 LINESIZE 만큼만 출력할 것인지 설정합니다.

문법

SET WRA[P] {ON|OFF}

항목

설명

ON

WRAP을 활성화한다. (기본값)

OFF

WRAP을 비활성화한다.


기본 기능

tbSQL 유틸리티에서 주로 사용하는 기능은 SQL 문장이나 PSM 프로그램을 직접 입력하여 실행하는 것입니다. 본 절에서는 명령어의 입력과 실행에 관하여 설명한 후 기타 기능에 대해서 설명합니다.

명령어 입력

tbSQL 유틸리티의 명령 프롬프트에서의 입력은 크게 SQL 문장, PSM 프로그램, 유틸리티 명령어의 세 가지로 구분할 수 있습니다. 명령어의 입력 방법은 대체로 서로 유사합니다. 각 명령어를 입력하는 방법에 대하여 차례로 설명합니다.

SQL 문장의 입력

아래는 SQL 문장을 입력하는 방법입니다.

  • 일반적인 입력 일반적인 SQL 문장은 tbSQL 유틸리티의 프롬프트에서 입력합니다. 하나의 SQL 문장을 여러 라인에 걸쳐 입력할 수 있으며, SQL 문장의 입력을 취소하려면 빈 라인을 입력합니다.

  • 줄 바꿈 하나의 SQL 문장을 여러 라인에 걸쳐 입력할 경우 연속된 문자열이 아닌 어떤 곳에서도 줄 바꿈을 할 수 있습니다. 대개의 경우 읽기에 편하고 변경하기에 용이하도록 절 단위로 줄 바꿈을 하여 입력합니다.

  • 주석(comment)의 삽입 SQL 문장을 입력하는 중간에 주석을 삽입할 수 있습니다. 주석은 두 개의 마이너스 부호(--)로 시작되며, 그 라인의 마지막까지 포함합니다. 주석은 그 자체만으로 하나의 라인을 형성할 수 있으며, 한 라인에서 다른 문자열의 뒤에 올 수도 있습니다.

  • 이전에 저장된 문장을 이용하여 입력 입력한 SQL 문장은 tbSQL 유틸리티의 SQL 버퍼에 저장됩니다. 따라서, 같거나 유사한 SQL 문장을 입력하기 위하여 이전에 저장된 문장을 이용할 수 있습니다. 이전 문장을 필요에 따라 변경하면 새로운 문장으로 입력되어 SQL 버퍼에 저장됩니다. SQL 버퍼에는 하나의 SQL 문장 또는 PSM 프로그램이 저장됩니다. 운영체제에 따라서 키보드의 위쪽 방향키(↑)나 아래쪽 방향키(↓)를 누르면 이전에 입력한 문장을 다시 불러올 수 있습니다. 키를 누를 때마다 이전에 저장된 문장이 한 라인씩 나타나므로 이전에 저장된 SQL 문장 전체뿐만 아니라 일부를 불러올 수 있습니다.

아래는 tbSQL 유틸리티에서 SQL 문장을 입력하는 예입니다.

SQL> SELECT ENAME, SALARY, ADDR 
    FROM EMP
    -- this is a comment. 
    WHERE DEPTNO = 5;
SQL>

PSM 프로그램의 입력

PSM 프로그램은 다수의 SQL 문장 또는 PSM 문장으로 이루어지며, 각 SQL 문장은 세미콜론(;)으로 마칩니다. PSM 프로그램을 입력하기 시작하면 tbSQL 유틸리티는 자동으로 PSM 프로그램 입력 모드로 전환합니다. PSM 프로그램 입력 모드에서는 SQL 문장의 입력이 완료되었을 때 SQL 문장이 개별적으로 실행되지 않습니다.

tbSQL 유틸리티가 PSM 프로그램 입력 모드로 전환하도록 만드는 문장에는 DECLARE, BEGIN 등 이름 없는 블록(anonymous block)과 각각 프러시저, 함수, 트리거를 생성하는 CREATE (OR REPLACE) PROCEDURE, FUNCTION, TRIGGER가 있습니다.

PSM 프로그램에서의 입력 방법은 일반 SQL 문장의 경우와 유사합니다.

아래는 PSM 프로그램을 입력하는 방법입니다.

  • 일반적인 입력 PSM 프로그램을 여러 라인에 걸쳐서 입력할 수 있습니다. SQL 문장의 입력을 취소하려면 빈 라인을 입력하였으나, PSM 프로그램의 입력을 취소하려면 블록종료 문자(BLOCKTERMINATOR)를 입력합니다. 블록 종료 문자의 기본값은 점(.)입니다. 블록종료 문자는 해당 문자만 한 라인에 입력해야 하며, 다른 문자열과 함께 입력하면 안됩니다.

  • 이전에 저장된 문장을 이용하여 입력 한번 입력된 프로그램은 SQL 버퍼에 저장되어 다시 사용할 수 있습니다.

  • 주석의 삽입 SQL 문장과 같은 방식으로 주석을 삽입합니다.

아래는 tbSQL 유틸리티에서 이름 없는 블록을 입력하는 예입니다.

SQL> DECLARE
    deptno NUMBER(2);
    BEGIN
        deptno := 5;
        UPDATE EMP SET SALARY = SALARY * 1.05
        WHERE DEPTNO = deptno;
        -- this is a comment.
    END;
    . 
SQL>

위의 예에서는 블록 내에 한 라인의 주석이 삽입되었으며, END 문장 아래의 9번째 라인에 블록종료 문자로 점(.)을 입력하여 PSM 프로그램의 입력을 마쳤습니다. 마지막 라인에서 다른 문자나 문자열 없이 오직 블 록종료 문자만 단독으로 한 라인을 형성하고 있는 것을 확인할 수 있습니다.

PSM 사용에 대한 자세한 내용은 "Tibero tbPSM 안내서"를 참고합니다.

tbSQL 유틸리티의 명령어 입력

tbSQL 유틸리티의 명령어에는 SQL 수행과 관련된 명령어나 기타 Tibero 데이터베이스 관리를 위한 명령어 등이 포함됩니다.

tbSQL 유틸리티의 명령어에 대한 자세한 내용은 “명령어”를 참고합니다.

명령어의 실행

tbSQL 유틸리티의 명령 프롬프트에 입력된 명령어를 실행하는 방법은 아래와 같은 세 가지가 있습니다.

  • SQL 버퍼에 저장된 SQL 문장이나 PSM 프로그램의 실행 SQL 버퍼에는 가장 최근에 입력된 SQL 문장이나 PSM 프로그램 하나만 저장되어 있습니다. 이러한 SQL문장이나 PSM 프로그램을 실행하기 위해서는 공통적으로 RUN 또는 / 명령어를 입력합니다.

  • SQL 문장의 실행 전체 문장을 입력하고 세미콜론(;)으로 종료하면 SQL 문장이 바로 실행됩니다.

  • SQL 버퍼에 저장과 동시에 실행 SQL 문장이나 PSM 프로그램 입력을 마치고, SQL 버퍼에 저장함과 동시에 바로 실행하려면 / 명령어를 입력합니다. 이때 점(.)과 마찬가지로 그 자체만으로 하나의 라인이 되어야 합니다.

tbSQL 유틸리티의 명령어는 SQL 문장이나 PSM 프로그램과 달리 실행을 위한 명령어가 따로 없으며, SQL 버퍼에도 저장되지 않습니다. tbSQL 유틸리티의 명령어는 입력을 마침과 동시에 실행됩니다.

아래는 SQL 버퍼에 저장된 SQL 문장을 실행하는 예입니다.

SQL> SELECT ENAME, SALARY, ADDR 
    FROM EMP
    -- this is a comment. 
    WHERE DEPTNO = 5;
......실행 결과 ①......
SQL> /
......실행 결과 ②......
SQL>

위의 예에서는 첫 번째 SQL 프롬프트에서 SQL 문장을 입력하고 세미콜론(;)으로 종료하여 바로 실행하였습니다. 그리고 두 번째 SQL 프롬프트에서는 /를 입력하여 SQL 버퍼에 저장된 SQL 문장을 실행하였습니다. SQL 버퍼에는 가장 최근에 입력된 SQL 문장이 저장되어 있으므로, 첫 번째 SQL 프롬프트에서 입력한 SQL 문장과 동일한 문장이 다시 실행됩니다. 따라서 실행 결과 ①과 실행 결과 ②는 동일한 결과를 출력합니다.

아래는 위에서 보인 SQL 문장을 슬래시(/)를 이용하여 실행하는 예입니다. 이때 SQL 문장의 맨 마지막에 세미콜론(;)을 입력하지 않습니다.

SQL> SELECT ENAME, SALARY, ADDR 
    FROM EMP
    -- this is a comment. 
    WHERE DEPTNO = 5
    /
......실행 결과......
SQL>

기타 기능

본 절에서는 tbSQL 유틸리티의 기본 기능 중에서 주로 사용되는 주석의 삽입, 자동 커밋, 운영체제 명령어 실행, 출력 내용을 저장하는 기능에 대하여 차례로 설명합니다.

주석 삽입

주석은 아래 두 가지 방법으로 삽입할 수 있습니다.

  • /* … */를 이용 /* … */를 이용하는 방법은 C나 C++ 프로그래밍 언어에서 사용하는 방법과 동일합니다. tbSQL 유틸리티 에서는 /*와 */로 둘러싸인 부분은 주석으로 인식하여 처리하지 않습니다. 이 주석은 중첩하여 사용할 수 없습니다. 즉, /* …… */ 주석 내에 또 다른 /* …… */ 주석이 포함될 수 없습니다.

  • 두 개의 마이너스 부호(--)를 이용 두 개의 마이너스 부호(--)를 이용하면, 각 라인에서 두 개의 마이너스 부호(--) 다음부터 라인의 마지막 까지를 주석으로 인식하여 무시된다. 이 주석은 /* …… */를 이용하는 방법과 마찬가지로 어떤 위치에도 올 수 있으나, PSM 프로그램 입력을 종료하기 위한 점(.)과는 같은 라인에 올 수 없습니다. 따라서, 다음과 같이 작성된 스크립트 파일은 실행 중에 오류를 발생합니다.

(PSM 프로그램)
.-- 잘못된 주석
RUN

자동 커밋

SQL 문장으로 갱신된 내용은 트랜잭션이 커밋되기 전에는 데이터베이스에 영구적으로 반영되지 않습니다. 하나의 트랜잭션은 대개 여러 개의 SQL 문장으로 이루어지며, SQL 문장으로 갱신된 내용은 데이터베이스에 바로 반영되지 않습니다.

tbSQL 유틸리티에서는 SQL 문장이 실행될 때마다 COMMIT 문장을 자동으로 실행하도록 설정하거나 이 기능을 정지시킬 수 있습니다. 디폴트는 자동 커밋을 사용하지 않는 것입니다.

SET AUTOCOMMIT 명령어로 이러한 설정을 할 수 있으며, 현재의 자동 커밋 설정을 출력하여 확인하려면 SHOW AUTOCOMMIT 명령어를 이용합니다.

운영체제 명령어 실행

tbSQL 유틸리티를 시작한 상태에서 운영체제 명령어를 실행하려면 HOST 명령어를 입력합니다.

아래는 확장자가 .sql인 모든 스크립트 파일을 나열하는 예시입니다. HOST 명령어 대신에 ! 명령어를 사용해도 같은 동작을 수행합니다.

SQL> HOST dir *.sql
..... 운영체제 명령어 실행 결과 .....
SQL>

운영체제 명령어를 실행한 후에는 다시 tbSQL 유틸리티의 프롬프트가 나타나며, 계속하여 tbSQL 유틸리티의 명령어를 입력할 수 있습니다.

HOST 명령어나 ! 명령어 다음 문장을 생략할 경우 운영체제 명령 프롬프트가 출력됩니다. 다시 tbSQL 유틸리티로 돌아오기 위해서는 EXIT를 입력합니다.

SQL> !
$ dir *.sql
..... 운영체제 명령어 실행 결과 .....
$ EXIT 
SQL>

출력 내용 저장

tbSQL 유틸리티에서 입력하거나 출력한 모든 내용을 텍스트 파일로 저장하려면 SPOOL 명령어를 사용합니다. SPOOL 명령어를 사용하면, 사용자가 입력한 SQL 문장이나 PSM 프로그램, tbSQL 유틸리티의 명령어는 물론, 질의 결과 및 프로그램 실행 결과, tbSQL 유틸리티 프롬프트까지도 파일에 저장됩니다.

SPOOL 명령어를 실행하면 바로 다음 라인부터 파일에 저장됩니다. 이 기능을 정지하려면 SPOOL OFF를 입력합니다. SPOOL OFF를 입력하면 그 다음 라인부터는 파일에 저장되지 않습니다.

아래는 SPOOL 명령어를 사용하는 예입니다. 만약 SPOOL 명령에서 사용되는 save.txt 파일이 이미 존재한다면 이전 파일 위에 덮어 쓰게 되므로 이전의 내용은 사라집니다.

SQL> SPOOL save.txt 
Spooling is started. 
SQL> SELECT
    *
    FROM DUAL; 
    
DUMMY
------
X

1 row selected.

SQL> SPOOL OFF
Spooling is stopped: save.txt

아래는 위의 예에서 save.txt 파일에 저장된 내용입니다.

SQL> SELECT
    *
    FROM DUAL; 
    
DUMMY
------
X

1 row selected.

SQL> SPOOL OFF

사용자가 입력한 SQL 문장, 질의 결과, 마지막의 SPOOL OFF 명령까지도 파일에 저장되어 있습니다.


고급 기능

본 절에서는 tbSQL 유틸리티의 기본 기능에 비하여 좀 더 고급 사용자가 사용하는 기능으로 스크립트를 이용한 일괄 작업 실행과 Tibero 시스템을 관리하는 DBA를 위한 기능에 대하여 설명합니다.

스크립트 기능

스크립트는 한 번의 명령으로 일괄적으로 작업을 실행하기 위한 SQL 문장과 PSM 프로그램, tbSQL 유틸리티의 명령어의 모임입니다. tbSQL 유틸리티에서 스크립트를 실행하면 그 안에 포함된 모든 명령어가 차례로 실행됩니다.

스크립트 생성

스크립트 파일은 외부에서 생성, 편집하여 tbSQL 유틸리티 내에서 실행할 수도 있고, tbSQL 유틸리티를 실행한 후에 외부 편집기를 호출하여 생성, 편집할 수도 있습니다. 외부 편집기를 호출할 경우 어떤 편집기를 이용할 것인지 설정할 수 있습니다.

아래는 외부 편집기로 vi를 이용하는 예시입니다.

$ export TB_EDITOR=vi

외부 편집기를 이용하여 특정 스크립트 파일을 편집하기 위해서는 EDIT 명령어를 사용합니다. EDIT 명령어 와 함께 파일명을 제시해야 하며, 확장자가 SUFFIX 시스템 변수와 같은 경우에는 생략할 수 있습니다.

아래는 스크립트 파일 run.sql을 편집하기 위하여 외부 편집기를 호출하는 예시입니다.

SQL> EDIT run

아래는 스크립트 파일 내에 SQL 문장, PSM 프로그램, tbSQL 유틸리티의 명령어를 입력하는 방법입니다.

  • 일반적인 입력 방법 tbSQL 유틸리티의 명령 프롬프트에서 입력하는 방법과 거의 동일하며, 여러 라인에 걸쳐서 입력할 수 있습니다.

  • SQL 문장과 PSM 프로그램의 종료 SQL 문장은 반드시 항상 세미콜론(;)을 문장 끝에 입력해야 하며, PSM 프로그램은 마지막 라인을 점(.) 만으로 마쳐야 합니다.

  • 주석의 삽입 스크립트 파일 내에 주석을 삽입할 수 있습니다.

스크립트를 실행하면 SQL 문장은 바로 실행되며, PSM 프로그램은 RUN 또는 / 명령어를 입력하여 실행합니다.

아래는 테이블 EMP에 대한 몇 가지 작업을 수행하는 스크립트 파일의 예시입니다. 라인 사이에 공백이 들어 갈 수 있습니다.

-- SQL 문장
SELECT ENAME, SALARY, ADDR FROM EMP 
    WHERE DEPTNO = 5;
UPDATE EMP SET SALARY = SALARY * 1.05 
    WHERE DEPTNO = 5;
    
-- PSM 프로그램
DECLARE
    deptno NUMBER(2);
BEGIN
    deptno := 20;
    UPDATE EMP SET SALARY = SALARY * 1.05
    WHERE DEPTNO = deptno; 
END;

RUN -- PSM 프로그램 실행
/* 최종으로 갱신된 내용을 반영한다. */ 
COMMIT;

스크립트 실행

스크립트 파일을 실행하려면 START 또는 @ 명령어를 사용합니다. 명령어와 함께 파일명을 지정하며 확장자가 SUFFIX 시스템 변수(sql)와 동일한 경우에는 생략해도 무방합니다.

스크립트 파일이 현재 디렉터리에 있는 경우에는 바로 실행하고, 그렇지 않은 경우에는 환경변수 TB_SQLPATH에 설정된 디렉터리에서 찾습니다.

아래 두 라인은 스크립트 파일 run.sql을 실행하는 예이며 결과는 동일합니다.

SQL> START run
SQL> @run

스크립트 파일 내에서 하나 이상의 다른 스크립트 파일을 실행할 수도 있습니다. 즉, 스크립트 파일 내에 START 또는 @ 명령어를 포함할 수 있습니다. 스크립트 파일을 재귀적으로 실행할 때 무한 루프에 빠지지 않도록 해야 합니다. tbSQL 유틸리티를 시작할 때 @ 명령어를 사용하면 시작과 동시에 스크립트 파일을 실행할 수 있습니다. 이러한 방법은 운영체제에서 배치 프로그램을 실행할 때 필요합니다.

아래는 tbSQL 유틸리티를 시작하면서 동시에 스크립트 파일 run.sql을 실행하는 예입니다.

$ tbsql dbuser/dbuserpassword @run

또는 아래와 같이 셸의 리다이렉션 명령을 이용하여 스크립트를 실행시키는 것도 가능합니다.

$ tbsql dbuser/dbuserpassword < run.sql

DBA를 위한 기능

tbSQL 유틸리티로 DBA 기능을 수행할 수 있습니다. tbSQL 유틸리티로 DBA 기능을 수행하려면 먼저 DBA 권한을 가진 사용자로 Tibero에 로그인 합니다.

아래는 DBA 권한을 가지고 있는 SYS 사용자로 로그인을 하는 예시입니다.

$ tbsql sys/syspassword

tbSQL 유틸리티를 시작한 후에도 DBA로 연결할 수 있습니다. 이때 CONNECT 명령어를 사용하며 앞에서와 마찬가지로 DBA 권한을 가진 사용자로 연결하면 됩니다.

아래는 CONNECT 명령어를 이용하여 DBA로 연결하는 예시입니다.

SQL> CONNECT sys/syspassword

아래는 DBA가 tbSQL 유틸리티로 수행할 수 있는 기능입니다.

Tibero의 종료 DBA 권한을 가진 사용자는 tbSQL 명령어인 TBDOWN으로 Tibero를 종료합니다.

사용자 접근 제어 기능

tbSQL 유틸리티는 특정 사용자가 수행하는 명령어를 제한할 수 있는 기능을 제공합니다.

이 기능을 위해 tbSQL 유틸리티는 SYS 사용자에 생성된 CLIENT_ACCESS_POLICY 테이블을 참조하며, 이 테이블은 DBA로 하여금 특정 사용자가 수행하는 명령어에 대한 접근 정책을 정의할 수 있게 합니다.

tbSQL 유틸리티는 사용자가 데이터베이스에 접속할 때 해당 테이블에 있는 정보를 로딩하고, 사용자가 명령어를 수행할 때마다 권한 체크를 통해 수행 가능 여부를 판단합니다. 한번 로딩된 정보는 사용자가 접속 을 종료할 때 해제됩니다.

SYS 사용자로 접속할 경우엔 권한 체크를 수행하지 않습니다.

접근 제어 테이블 생성

접근 제어 테이블은 SYS 사용자로 접속하여 $TB_HOME/scripts/client_policy.sql 파일을 실행시켜 생성합니다.

만약 테이블이 존재하지 않거나 제대로 생성되지 않은 경우엔 권한 체크를 하지 않습니다.

CLIENT_ACCESS_POLICY 테이블의 세부 내용은 아래와 같습니다.

CLIENT VARCHAR2(32) NOT NULL 
USERID VARCHAR2(128)
ACTION VARCHAR2(256) 
POLICY VARCHAR2(64)

항목

설명

CLIENT

클라이언트 프로그램 이름이다. 대소문자를 구분하며, tbSQL을 사용한다.

USERID

제한할 사용자 이름이다.

다음과 같이 사용할 수 있으며 와일드 카드(%)를 허용한다.

  • TIBERO

  • T% (T로 시작하는 모든 사용자)

  • % (모든 사용자)

ACTION

제한할 명령어다.

POLICY

제한 정책이다. DISABLED를 사용한다.

명령어 제한 설정

tbSQL 명령어나 SQL, PSM 명령어를 제한하기 위해선 아래 예제와 같이 CLIENT_ACCESS_POLICY 테이블에 로우를 삽입합니다. 만약 다시 명령어를 허용하려면 해당 로우를 삭제합니다.

CLIENT		USERID		ACTION		POLICY
----------      -----------     -----------     --------------
tbSQL           TIBERO          HOST            DISABLED 
tbSQL           %               INSERT          DISABLED 
tbSQL           PUBLIC          UPDATE          DISABLED 

아래는 제한할 수 있는 명령어 목록입니다.

  • tbSQL 명령어

ACCEPT	        APPEND	        ARCHIVE	        CHANGE
CLEAR	        COLUMN	        CONNECT	        DEFINE
DEL	        DESCRIBE	DISCONNECT	EDIT
EXECUTE	        EXIT	        EXPORT	        HELP (?)
HISTORY	        HOST (!)	INPUT	        LIST
LOADFILE	LOOP	        LS	        PASSWORD
PAUSE		PING	        PRINT	        PROMPT
QUIT		REMARK	        RESTORE	        RUN
SAVE		SET	        SHOW	        SPOOL
START	(@, @@)	TBDOWN	        UNDEFINE	VARIABLE
WHENEVER

  • SQL 명령어

ALTER	        ANALYZE	        AUDIT	        CALL
COMMENT	        COMMIT	        CREATE	        DELETE
DROP	        EXPLAIN	        FLASHBACK	GRANT
INSERT	        LOCK	        MERGE	        NOAUDIT
PURGE	        RENAME	        REVOKE	        ROLLBACK
SAVEPOINT	SELECT	        SET CONSTRAINTS	SET ROLE
SET TRANSACTION	TRUNCATE	UPDATE	

  • PSM 명령어

BEGIN         DECLARE

아래는 사용자 접근 제어 기능을 사용한 예제입니다.

..... SYS 사용자로 접속 .....
SQL> CONNECT SYS
..... 접근 제어 설정 .....
SQL> INSERT INTO CLIENT_ACCESS_POLICY VALUES ('tbSQL', 'TIBERO', 'SELECT', 'DISABLED');

..... TIBERO 사용자로 접속 .....
SQL> CONNECT TIBERO
SQL> SELECT * FROM DUAL;
TBS-70082: The 'SELECT' command has been disabled.

접속 정보 암호화 기능

tbSQL 유틸리티는 데이터베이스 접속 정보(connect_string)를 암호화 파일(wallet)로 저장하고 사용하는 기능을 제공합니다. 환경변수인 ISQL_WALLET_PATH에 지정한 경로의 파일에 tbSQL 유틸리티에서 접속한 데이터베이스의 정보를 암호화 파일로 만들거나 다음 접속 시 사용할 수 있습니다.

암호화 파일 생성

tbSQL 유틸리티를 이용해서 특정 데이터베이스에 접속한 후 SAVE CREDENTIAL 명령어를 통해서 암호화 파일을 생성할 수 있습니다.

아래는 ISQL_WALLET_PATH의 값을 현재 경로의 wallet.dat 파일로 설정한 후 접속한 데이터베이스 정보를 암호화하여 생성하는 예입니다.

$ export ISQL_WALLET_PATH=./wallet.dat
$ tbsql 

tbSQL 7

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Can't login with the wallet file.
Login the database and SAVE CREDENTIAL again.

Enter Username: dbuser
Enter Password: dbuserpassword 
Connected to Tibero.

SQL> SAVE CREDENTIAL
Complete to generate the wallet file.

tbSQL 유틸리티를 실행하기에 앞서 ISQL_WALLET_PATH 환경변수를 설정했기 때문에 ./wallet.dat 파일의 내용을 복호화하려고 시도하지만 해당 파일이 존재하지 않을 경우 위와 같은 오류가 발생합니다.

데이터베이스에 정상적으로 다시 접속 후 SAVE CREDENTIAL 명령어를 통해서 ./wallet.dat 파일이 생성됩니다.

아래는 ISQL_WALLET_PATH 환경변수 설정 없이 현재 경로의 wallet.dat 파일에 접속한 데이터베이스 정보를 암호화하여 생성하는 예입니다.

$ tbsql 

tbSQL 7

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

SQL> CONN dbuser/dbuserpassword 
Connected to Tibero.

SQL> SAVE CREDENTIAL "./wallet.dat" 
Complete to generate the wallet file.

SAVE CREDENTIAL의 파라미터로 ./wallet.dat 파일 경로를 설정하면, 데이터베이스 접속한 정보를 암호화하여 ./wallet.dat 파일을 생성합니다.

암호화 파일 사용

tbSQL 유틸리티 실행 전 환경변수 ISQL_WALLET_PATH의 값으로 위에서 생성한 암호화 파일(wallet)을 지정하면 암호화 파일 생성 전 접속한 정보를 다시 이용할 수 있습니다.

아래는 ISQL_WALLET_PATH의 값의 파일을 사용해서 데이터베이스에 접속하는 예입니다.

$ tbsql 

tbSQL 7

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

암호화 파일을 사용하기 위해서는 반드시 환경변수 ISQL_WALLET_PATH를 설정해야 합니다.

암호화된 파일은 암호화 파일을 생성한 tbSQL 유틸리티에서만 사용이 가능합니다. 해당 파일을 다른tbSQL 유틸리티에서 사용하고 싶다면 위 과정을 통해서 암호화 파일을 다시 생성해야만 합니다.

Windows 환경에서는 위의 암호화 파일 생성 및 사용 기능은 사용할 수 없습니다.


명령어

본 절에서는 tbSQL 유틸리티가 제공하는 명령어를 자세히 설명합니다.

아래는 tbSQL 유틸리티의 명령어를 표현하는 문법의 예입니다.

COM[MAND] param {choice1|choice2} [option] [arg]*

위의 예를 기준으로 tbSQL 유틸리티에서 사용하는 명령어의 문법을 해석하는 방법은 다음과 같습니다.

항목

설명

대괄호([ ])

대괄호([ ])에 포함된 내용은 입력하지 않아도 명령어를 실행할 수 있다.

위의 예에서 COMMAND 명령어의 뒷부분(MAND)과 option, arg는 명령 프롬 트에 포함되지 않을 수 있다.

중괄호({ })

중괄호({ })에 포함된 내용은 반드시 입력해야 명령어를 실행할 수 있다.

위의 예에서 choice1과 choice2는 중괄호({ }) 내에 있고 버티컬 바(|)로 분리되어 있으므로 둘 중 하나는 명령 프롬프트에 포함되어야 한다.

버티컬 바(|)

버티컬 바(|)로 분리된 내용은 그 중 하나를 선택한다.

애스터리스크(*)

애스터리스크(*)로 표시된 내용은 포함되지 않을 수도 있고, 여러 번 포함될 수도 있다.

위의 예에서 arg는 대괄호([ ]) 바로 뒤에 애스터리스크(*)가 있으므로 포함되지 않을 수도 있고, 한 번 이상 여러 번 포함될 수도 있다.

이탤릭체

이탤릭체로 표시된 내용은 명령어에 따라 적절한 문자열로 대체되어야 한다.

대소문자

명령어는 대소문자를 구분하지 않는다.

아래에 나열된 세 개의 명령어는 위의 명령어 문법 표현에 따라 모두 유효합니다.

COMMAND param choice1 
COM param choice1 option
COM param choice2 arg1 arg2 arg3

tbSQL 유틸리티의 명령어에는 SQL 문장의 수행 또는 데이터베이스 관리에 필요한 명령어가 포함되어 있습니다. 각 명령어를 알파벳 순으로 나열하고, 문법(syntax), 파라미터, 예제의 순서로 설명합니다.

tbSQL 유틸리티에서 사용할 수 있는 명령어는 아래와 같습니다.

명령어

설명

!

운영체제의 명령어를 실행하는 명령어 (HOST 명령어와 동일)

%

히스토리 버퍼에 저장된 명령어를 재수행하는 명령어

@, @@

스크립트를 실행하는 명령어 (START 명령어와 동일)

/

현재 SQL 버퍼 내의 SQL 문장 또는 PSM 프로그램을 실행하는 명령어 (RUN 명령어와 동일)

ACCEPT

사용자의 입력을 받아 치환 변수의 값을 설정하는 명령어

APPEND

SQL 버퍼에 특정 텍스트 혹은 statement를 덧붙이는 명령어

ARCHIVE LOG

Redo 로그 파일 정보를 출력하는 명령어

CHANGE

SQL 버퍼의 현재 라인에서 패턴 문자를 찾아 주어진 문자로 변환하는 명령어

CLEAR

설정된 옵션을 초기화하거나 지우는 명령어

COLUMN

컬럼의 출력 속성을 설정하는 명령어

CONNECT

특정 사용자 ID로 데이터베이스에 접속하는 명령어

DEFINE

치환 변수를 정의하거나 출력하는 명령어

DEL

SQL 버퍼에 저장된 라인을 지우는 명령어

DESCRIBE

지정된 객체의 컬럼 정보를 출력하는 명령어

DISCONNECT

현재 데이터베이스로부터 접속을 해제하는 명령어

EDIT

특정 파일 또는 SQL 버퍼의 내용을 외부 편집기를 이용하여 편집하는 명령어

EXECUTE

단일 PSM 문장을 수행하는 명령어

EXIT

tbSQL 유틸리티를 종료하는 명령어 (QUIT 명령어와 동일)

EXPORT

SELECT 문장의 수행 결과나 테이블 데이터를 파일로 출력하는 명령어

HELP

도움말을 출력하는 명령어

HISTORY

실행한 명령어의 히스토리를 출력하는 명령어

HOST

운영체제 명령어를 실행하는 명령어 (! 명령어와 동일)

INPUT

SQL 버퍼의 현재 라인 뒤에 새로운 라인을 추가하는 명령어

LIST

SQL 버퍼 내의 특정 내용을 출력하는 명령어

LOADFILE

Tibero의 테이블을 Oracle의 SQL*Loader 툴이 인식할 수 있는 형식으로 저장하 는 명령어

LOOP

단일 명령어를 무한 반복 수행하는 명령어

LS

현재 사용자가 생성한 데이터베이스 객체를 출력하는 명령어

PASSWORD

사용자 패스워드를 변경하기 위한 명령어

PAUSE

사용자가 <Enter> 키를 누를 때까지 실행을 멈추는 명령어

PING

특정 데이터베이스에 대해 접속가능한 상태인지를 출력하는 명령어

PRINT

사용자가 정의한 바인드 변수의 값을 출력하는 명령어

PROMPT

사용자가 정의한 SQL 문장이나 빈 라인을 그대로 화면에 출력하는 명령어

QUIT

tbSQL 유틸리티를 종료하는 명령어 (EXIT 명령어와 동일)

RESTORE

선택한 정보를 파일로부터 복원하는 명령어

RUN

현재 SQL 버퍼 내의 SQL 문장이나 PSM 프로그램을 실행하는 명령어 (/ 명령어와 동일)

SAVE

선택한 정보를 파일에 저장하는 명령어

SET

tbSQL 유틸리티의 시스템 변수를 설정하는 명령어

SHOW

tbSQL 유틸리티의 시스템 변수를 출력하는 명령어

SPOOL

화면에 출력되는 내용을 모두 외부 파일에 저장하는 과정을 시작하거나 종료하는 명령어

START

스크립트 파일을 실행하는 명령어 (@ 명령어와 동일)

TBDOWN

Tibero를 종료하는 명령어입

UNDEFINE

하나 이상의 치환 변수를 삭제하는 명령어

VARIABLE

사용자가 정의한 바인드 변수를 선언하는 명령어

WHENEVER

에러가 발생한 경우의 동작을 정의하는 명령어

!

tbSQL 유틸리티 내에서 운영체제의 명령어를 실행합니다. ! 명령어 대신에 HOST 명령어를 사용할 수 있습니다.

문법

! [command]

항목

설명

운영체제의 명령어 없이 ! 명령어만 입력하면 운영체제의 명령 프롬프트로 나가서 운영체제의 명령어를 여러 번 입력할 수 있다. 이때 다시 tbSQL 유틸리티로 돌아 오려면 EXIT 명령어를 입력한다.

command

운영체제의 명령어이다.

예제

SQL> ! dir *.sql 
SQL> !

%

tbSQL 유틸리티 내에서 히스토리 버퍼에 저장된 명령어를 다시 입력할 필요없이 재수행합니다.

문법

% number

항목

설명

number

히스토리 버퍼에 저장된 명령어 번호이다.

예제

SQL> history
    1: set serveroutput on 
    2: set pagesize 40
    3: select 1 from dual;
SQL> %3

        1
---------
        1
        
1 row selected.

@, @@

스크립트 파일을 실행합니다. 스크립트 파일이 SUFFIX 시스템 변수에 등록된 확장자를 가지면 스크립트 파일의 이름을 확장자 없이 지정할 수 있습니다. tbSQL 유틸리티는 지정된 스크립트 파일을 현재 디렉터리 내에서 찾습니다. 스크립트 파일의 실행 전에 SET 명령어로 설정된 시스템 변수는 스크립트 파일을 실행하는 중에도 유효합니다. 스크립트 파일 내에서 EXIT 또는 QUIT 명령어를 실행하면 tbSQL 유틸리티를 종료합니다. @ 명령어 대신에 START 명령어를 사용할 수 있습니다.

문법

@ {filename}

항목

설명

filename

스크립트 파일의 이름이다.

예제

SQL> @ run 
SQL> @ run.sql

/

현재 SQL 버퍼 내의 SQL 문장 또는 PSM 프로그램을 실행합니다. / 명령어 대신에 RUN 명령어를 사용할 수 있습니다.

문법

/

예제

SQL> SELECT * FROM DUAL;
..... SQL문장 실행 결과 .....
SQL> /
..... 위와 동일한 결과 .....

ACCEPT

사용자의 입력을 받아 치환 변수의 값을 설정합니다. 이때 설정된 치환 변수의 값은 이후에 사용자가 입력하는 SQL 문장이나 PSM 프로그램에서 &variable과 일치하는 단어가 있을 경우 자동으로 치환됩니다.

문법

ACC[EPT] variable [FOR[MAT] format] [DEF[AULT] default] 
[PROMPT statement|NOPR[OMPT]] [HIDE]

항목

설명

variable

저장할 치환 변수의 이름

만약 존재하지 않을 경우 새로 생성

FOR[MAT] format

치환 변수의 포맷

만약 치환 변수의 값과 포맷이 일치하지 않을 경우 오류발생

DEF[AULT] default

사용자로부터 입력값이 없을 경우 대신 사용할 치환 변수 값

PROMPT statement

사용자로부터 치환 변수의 값을 입력 받기 전에 프롬프트를 화면에 출력

NOPR[OMPT]

프롬프트를 출력하지 않고 사용자의 입력을 대기

HIDE

사용자로부터의 입력값이 출력되는 것을 방지

예제

SQL> ACCEPT name PROMPT 'Enter name : ' 
Enter name : 'John'
SQL> SELECT &name FROM DUAL;
At line 1, column 8
old value : SELECT &name FROM DUAL 
new value : SELECT 'John' FROM DUAL

'JOHN'
------
John

1 row selected.

SQL>

APPEND

SQL 버퍼에 사용자가 입력한 텍스트 또는 statement를 덧붙입니다.

문법

A[PPEND] statement

항목

설명

statement

SQL 버퍼에 덧붙일 텍스트를 의미한다.

예제

SQL> LIST 2
..... 두 번째 라인을 선택한다. .....
SQL> APPEND text
..... 두 번째 라인에 text를 추가한다. .....

ARCHIVE LOG

Archive 로그 파일 정보를 출력합니다.

문법

ARCHIVE LOG LIST

예제

SQL> ARCHIVE LOG LIST

NAME                             VALUE
--------------------------       -----------------------------------------
Database log mode                Archive Mode
Archive destination              /home/tibero/database/tibero/archive
Oldest online log sequence	 300
Next log sequence to archive	 302
Current log sequence	         302

SQL>

CHANGE

SQL 버퍼에 있는 문장의 현재 라인에서 첫 번째 old 패턴을 찾아 new 패턴으로 변환합니다. 일반적으로 마지막으로 실행된 SQL 문장의 현재 라인은 가장 마지막 라인입니다. 현재 라인을 변경하려면 예제를 참고합니다.

문법

C[HANGE] delim old [delim [new [delim [option]]]]
  • 입력 항목

항목

설명

delim

숫자를 제외한 구분자이다.

반드시 old나 new 패턴에 없는 문자를 사용해야 한다.

old

바꾸려고 하는 패턴이다.

대소문자를 구분하지 않는다. 이때 사용되는 단어는 일반적인 단어(예: dual, ksc911 등) 외에도 임의의 패턴을 나타내는 '...'을 사용할 수 있다. 사용방법은 예제를 참조한다.

  • option

항목

설명

delim

숫자를 제외한 구분자이다.

반드시 old나 new 패턴에 없는 문자를 사용해야 한다.

new

새로 치환할 패턴이다.

option

  • g : 현재 라인에서 전체 패턴을 바꾼다.

  • c : 현재 라인에서 사용자의 선택에 따라 바꾼다.

  • a : 전체 문장에서 전체 패턴을 바꾼다.

예제 현재 라인은 디폴트로 항상 마지막 라인을 가리키므로 두 번째 라인에 있는 DUAL이 T로 변환됩니다.

SQL> SELECT *
    FROM DUAL;
..... SQL 실행결과 .....
SQL> C/DUAL/T
    FROM T 
SQL>

현재 라인을 바꾸기 위해서는 원하는 라인 번호를 입력합니다.

SQL> 5
    5 WHERE ROWNUM < 5 AND

임의의 패턴을 나타내기 위해서 '...'을 사용할 수 있습니다. 이때 '...'은 앞, 뒤, 가운데에 올 수 있습니다.

SQL> CHANGE /RE...AND/RE ROWNUM >= 5 AND/
    5 WHERE ROWNUM >= 5 AND
SQL> CHANGE /...AND/WHERE ROWNUM < 3/
    5 WEHRE ROWNUM < 3
SQL> CHANGE /WHE.../WHERE ROWNUM < 5 AND/
    5 WHERE ROWNUM < 5 AND

a 옵션을 지정할 경우 전체 문장에서 주어진 패턴을 찾아 전부 바꿉니다. 따라서 첫 번째 라인에 있는 '*'가 문자열로 변환됩니다.

SQL> SELECT *
    FROM DUAL;
..... SQL 실행결과 .....
SQL> C/*/'replaced'/a 
    SELECT 'replaced' 
    FROM DUAL;
SQL>

CLEAR

설정된 옵션을 초기화하거나 지웁니다.

문법

CL[EAR] [option]
  • option

항목

설명

BUFF[ER]

SQL 버퍼에 있는 모든 내용을 삭제한다.

SCR[EEN]

화면에 있는 모든 내용을 삭제한다.

COL[UMNS]

등록된 모든 컬럼의 출력 속성을 초기화한다.

예제

SQL> CLEAR BUFFER
SQL buffer is cleared 
SQL> CLEAR SCREEN
SQL> CLEAR COLUMNS

COLUMN

컬럼의 출력 속성을 지정합니다. 컬럼의 이름만 명시했을 경우에는 해당 컬럼의 속성을 출력하고, 컬럼의 이름을 명시하지 않을 경우에는 등록된 모든 컬럼을 출력합니다.

문법

COL[UMN] [name [option]]
  • 입력 항목

항목

설명

name

속성을 지정할 컬럼 이름이다.

  • option

항목

설명

CLE[AR]

컬럼의 출력 속성을 초기화한다.

FOR[MAT] text

컬럼의 포맷을 지정한다. 자세한 내용은 “컬럼 포맷”을 참고한다.

HEA[DING] text

컬럼의 머리글을 설정한다.

NEW_V[ALUE]

variable

컬럼값을 저장할 변수를 설정한다.

WRA[PPED]

컬럼 데이터의 길이가 너무 길 경우 초과되는 데이터를 두 라인으로 나눈다.

TRU[NCATED]

컬럼 데이터의 길이가 너무 길 경우 초과되는 데이터를 자른다.

ON

컬럼의 출력 속성을 켠다.

OFF

컬럼의 출력 속성을 끈다.

예제

SQL> COLUMN
SQL> COLUMN empno
SQL> COLUMN empno CLEAR
SQL> COLUMN empno FORMAT 999,999 
SQL> COLUMN ename FORMAT A10
SQL> COLUMN sal HEADING the salary of this month 
SQL> COLUMN sal OFF
SQL> COLUMN job WRAPPED
SQL> COLUMN job TRUNCATED

CONNECT

다른 사용자로 Tibero 데이터베이스에 접속합니다. 만약 사용자의 이름 또는 패스워드를 입력하지 않은 경우에는 tbSQL 유틸리티에서 프롬프트를 출력하고 입력을 요구합니다.

CONNECT 명령어를 실행하면 이전에 실행되던 트랜잭션을 커밋시키고, 이전 접속을 해제하고 나서 새로운 접속을 시도합니다. 만약 새로운 접속이 실패하더라도 이전의 접속을 복구하지 않습니다.

CONNECT 명령어의 세부 내용은 다음과 같습니다.

문법

CONN[ECT] {username[/password[@connect_identifier]]}

항목

설명

username

사용자의 이름이다.

password

사용자의 패스워드이다.

connect_identifier

데이터베이스에 접속하기 위한 접속 정보이다.

$TB_HOME/client/config 디렉터리의 tbdsn.tbr 파일에서 지정할 수 있으며 HOST, PORT, DB_NAME 정보로 구성되어 있다.

Windows에서는 데이터 원본(ODBC)에 도 지정할 수 있으며 이를 가장 먼저 검색한다.

예제

SQL> CONNECT dbuser/dbuserpassword@db_id

DEFINE

치환 변수를 정의하거나 출력합니다.

문법

DEF[INE] [variable]|[variable = value]

항목

설명

None

치환 변수의 이름을 지정하지 않으면, 전체 치환 변수를 출력한다.

variable

지정한 치환 변수를 출력한다.

variable = value

정의할 치환 변수의 이름과 기본값이다.

예제

SQL> DEFINE NAME
..... NAME이라는 이름을 갖는 치환 변수를 화면에 출력한다. .....
SQL> DEFINE NAME = 'SMITH'
..... NAME이라는 이름을 갖는 치환 변수와 SMITH라는 기본값을 정의한다. .....
SQL> DEFINE
..... 전체 치환 변수를 화면에 출력한다. .....

DEL

SQL 버퍼에 설정된 라인을 지웁니다. 만약 라인 번호를 생략할 경우 전체 라인을 삭제합니다.

문법

DEL [number|number number|number LAST|LAST]

항목

설명

number

지정된 번호의 라인을 삭제한다.

number number

첫 번째로 지정된 번호의 라인부터 두 번째로 지정된 번호의 라인까지 삭제한다.

number LAST

첫 번째로 지정된 번호의 라인부터 마지막 라인까지 삭제한다.

LAST

마지막 라인을 삭제한다.

예제

SQL> DEL 1
..... 첫 번째 라인을 삭제한다. .....
SQL> DEL 1 3
..... 첫 번째부터 세 번째 라인까지 삭제한다. .....
SQL> DEL 1 LAST
..... 첫 번째부터 마지막 라인까지 삭제한다. .....
SQL> DEL LAST
..... 마지막 라인을 삭제한다. .....

DESCRIBE

지정된 객체의 컬럼 정보를 출력합니다. 여기서 객체는 테이블, 뷰, 동의어, 함수, 프러시저, 패키지가 될 수 있습니다.

  • 테이블, 뷰의 경우에는 컬럼 이름, 데이터 타입, 제약조건 및 인덱스 정보 등이 출력되며, 최대 길이, 정밀도, 스케일 등 데이터 타입에 따른 것도 포함합니다.

  • 함수, 프러시저의 경우에는 파라미터의 정보(이름, 데이터 타입, IN/OUT)가 출력되며, 패키지의 경우에는 소속된 모든 함수 및 프러시저의 정보가 출력됩니다.

  • 다른 사용자가 소유한 객체의 컬럼 정보도 출력할 수 있습니다. 이때 소유자의 이름을 명시하며, 소유자 이름이 명시되어 있지 않으면 디폴트로 현재 사용자 소유의 객체에 해당됩니다.

  • 지정된 객체의 소유자에 종속된 정보만 출력합니다. 만약 테이블을 조회할 경우 테이블 소유자의 인덱스만 출력합니다.

문법

DESC[RIBE] [schema.]object_name[@dblink]

항목

설명

schema

대상 객체를 포함하는 스키마(또는 소유자)이다.

object_name

컬럼 정보를 출력할 객체이다.

dblink

대상 객체를 포함하는 데이터베이스 링크이다.

예제

SQL> DESCRIBE emp
SQL> DESC scott.emp
SQL> DESC scott.emp@gateway

DISCONNECT

현재 데이터베이스로부터 접속을 종료합니다. 진행 중이던 트랜잭션을 커밋하지만 tbSQL 유틸리티를 종료하지는 않습니다.

스크립트 파일 내에서 CONNECT 명령어를 실행하고 그대로 종료한 경우 데이터베이스와 접속된 상태가 계속 유지됩니다. 따라서, 스크립트 파일 내에 CONNECT 명령어가 포함되고 있다면, 마지막에 DISCONNECT 명령어를 실행하는 것이 안전합니다.

문법

DISCONN[ECT]

EDIT

특정 파일 또는 SQL 버퍼의 내용을 외부 편집기를 이용하여 편집합니다. 어떤 외부 편집기를 사용할 것인지는 환경변수 $TB_EDITOR에서 설정할 수 있습니다.

$TB_EDITOR가 등록되지 않았다면 환경변수 $EDITOR를 참조하고, $EDITOR도 등록되지 않았다면 vi 편집기를 사용하여 편집합니다. 이때 SQL 버퍼가 비어 있다면 에러를 반환합니다.

편집할 파일의 확장자가 SUFFIX 시스템 변수로 지정된 디폴트 확장자이면 확장자 없이 파일의 이름을 지정할 수 있습니다. SUFFIX 시스템 변수의 기본값은 .sql이며, SET 명령어를 이용하여 변경할 수 있습니다. tbSQL 유틸리티는 현재 디렉터리에서 지정된 파일을 찾습니다.

문법

ED[IT] [filename]

항목

설명

파일 이름을 지정하지 않고 EDIT 명령어를 실행하면 현재 SQL 버퍼에 저장되어 있는 내용을 편집하며 디폴트 파일인 .tbedit.sql를 사용한다. 기본 파일은 tbSQL 유틸리티가 종료될 때 자동으로 삭제된다.

filename

편집할 파일의 이름(대개 스크립트 파일의 이름)이다.

예제

SQL> EDIT run.sql 
SQL> EDIT run 
SQL> ED

EXECUTE

단일 PSM 문장을 수행합니다. 사용할 수 있는 PSM 문장은 CALL 문장과 이름 없는 블록 뿐 입니다. 사용자가 입력한 문장의 제일 끝에는 반드시 세미콜론(;)이 있어야 합니다.

문법

EXEC[UTE] {statement}

항목

설명

statement

단일 PSM 프로그램의 문장이다.

예제

SQL> EXECUTE begin dbms_output.put_line('success'); end; 
success

PSM completed

SQL> EXECUTE call proc1();

또한 사용자가 정의한 바인드 변수에 값을 할당할 때에도 유용하게 사용할 수 있습니다.

SQL> VAR x NUMBER;
SQL> EXEC :x := 5;

PSM completed

SQL>

EXIT

tbSQL 유틸리티를 종료합니다. 현재 진행 중이던 모든 트랜잭션을 커밋하며 데이터베이스와의 모든 접속을 종료합니다.

문법

EXIT [SUCCESS|FAILURE|WARNING|n|variable|:variable] [COMMIT|ROLLBACK]

항목

설명

SUCCESS

정상 종료 코드 0을 반환한다.

FAILURE

실패 종료 코드 1을 반환한다.

WARNING

경고 종료 코드 2를 반환한다.

n

종료 코드로 사용할 정수형 숫자를 직접 지정할 수 있으며, 사용할 수 있는 값의 범위는 운영체제에 따라 다르다.

variable

DEFINE 명령으로 정의한 사용자 변수나 SQL.SQLCODE와 같은 시스템 변수의 값을 반환한다. 단, 사용한 변수는 숫자형이어야 한다.

:variable

VARIABLE 명령으로 정의한 바인드 변수를 이용하여 종료 코드를 지정할 수 있 다. 단, 사용한 바인드 변수는 숫자형이어야 한다.

COMMIT

종료하기 전 COMMIT을 수행한다.

ROLLBACK

종료하기 전 ROLLBACK을 수행한다.

EXPORT

SELECT 문장의 수행 결과나 테이블 데이터를 tbLoader에서 인식할 수 있는 형식의 파일로 출력합니다. 고정형 포맷으로 출력하거나 각 컬럼과 로우 구분자를 지정하여 가변형 포맷으로 출력할 수 있습니다.

문법

EXP[ORT] {QUERY filename|TABLE [schema.]table} [variable_fmt|FIXED]

variable_fmt:
    [FIELDS {TERM[INATED] BY {,|text}|ENCL[OSED] BY {"|text}}] 
    [LINES TERM[INATED] BY {\n|text}]

항목

설명

filename

출력할 파일 이름이다. 이 값은 컨트롤 파일의 대상 테이블 이름으로 사용된다.

[schema.]table

출력할 테이블 이름이다.

variable_fmt

  • FIELDS ... : 가변형 포맷 컬럼 구분자이다.

  • LINES ... : 가변형 포맷 로우 구분자이다.

  • FIXED : 고정형 포맷 지시자이다.

예제

아래 명령어를 수행하면 t.csv(데이터 파일), t.ctl(컨트롤 파일)이 생성됩니다.

SQL> EXPORT QUERY 't.csv'
Ready to export to 't.csv' 

SQL> SELECT * FROM t;

10 rows exported.

가변형 포맷을 지정할 수 있습니다.

SQL> EXPORT QUERY 't.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
SQL> EXPORT QUERY 't.csv' FIELDS ENCLOSED BY '*'

HELP

지정된 단어를 포함하는 모든 항목에 대한 도움말을 화면에 출력합니다.

문법

H[ELP] [topic]

항목

설명

None

옵션을 지정하지 않으면 tbSQL 유틸리티에서 사용할 수 있는 전체 명령어를 출력한다.

topic

도움말을 출력할 단어를 지정한다.

예제

SQL> HELP SET

HISTORY

히스토리 버퍼에 저장된 명령어를 화면에 출력합니다.

문법

HIS[TORY]

예제

SQL> HISTORY
..... 전체 명령어를 출력한다. .....

HOST

! 명령어와 동일합니다.

문법

HO[ST] [command]

항목

설명

None

명령어 없이 HOST만 입력하면 운영체제의 명령 프롬프트로 나가서 운영체제 명 령어를 여러번 입력할 수 있다. 이때 다시 tbSQL 유틸리티로 돌아오려면 EXIT를 입력한다.

command

운영체제의 명령어이다.

INPUT

SQL 버퍼에 저장된 제일 마지막 라인 뒤에 사용자가 입력한 문장을 추가합니다.

문법

I[NPUT] [statement]

항목

설명

None

statement를 생략하면 여러 라인에 걸쳐 문장을 추가한다.

statement

추가할 SQL 문장이다.

예제

SQL> select * from dual;
..... 결과 출력 .....
SQL> LIST
    select * from dual 
SQL> INPUT where rownum < 2
    select * from dual
    where rownum < 2
SQL>

아래는 statement 옵션을 생략한 것입니다. 단, 위의 경우와 달리 입력이 끝남과 동시에 SQL 문장이 실행됩니다.

SQL> select * from dual;
..... 결과 출력 .....
SQL> INPUT
    select * from dual
    ... 여기에 입력하면 된다. ...

LIST

SQL 버퍼 내의 특정 내용을 화면에 출력합니다.

문법

L[IST] [number|number number|number LAST|LAST]

항목

설명

None

라인의 번호를 생략할 경우 전체 라인을 출력한다.

number

지정된 번호의 라인을 출력한다.

number number

첫 번째로 지정된 번호부터 두 번째로 지정된 번호까지의 라인을 출력한다.

number LAST

지정된 번호의 라인부터 마지막 라인까지 출력한다.

LAST

마지막 라인을 출력한다.

예제

SQL> LIST 1
..... 첫 번째 라인을 출력한다. .....
SQL> LIST 2 3
..... 두 번째부터 세 번째 라인까지 출력한다. .....
SQL> LIST 2 LAST
..... 두 번째부터 마지막 라인까지 출력한다. .....
SQL> LIST LAST
..... 마지막 라인을 출력한다. .....

LOADFILE

Tibero 테이블을 Oracle의 SQL*Loader가 인식할 수 있는 형식으로 저장합니다.

문법

LOAD[FILE] {filename}

항목

설명

filename

확장자를 제외한 파일의 이름이다.

예제

EMP라는 이름의 테이블을 Oracle의 SQL*Loader가 인식할 수 있는 파일로 저장하려면 다음과 같은 명령어를 입력합니다. 이 명령을 수행하면 emp.ctl과 emp.dat라는 2개의 파일이 생성됩니다.

SQL> LOADFILE emp
SQL> select * from emp;

LOOP

임의의 문장을 무한 반복 수행하는 명령어입니다. <Ctrl>+C를 입력해 수행을 종료합니다.

문법

LOOP stmt

항목

설명

stmt

반복 수행할 문장이다.

예제

SQL> LOOP select count(*) from v$session
..... SQL을 1초 간격으로 반복 수행한다. .....
SQL> SET INTERVAL 10 
SQL> LOOP ls
..... LS를 10초 간격으로 반복 수행한다. .....

LS

현재 사용자가 생성한 특정 타입이나 이름의 데이터베이스 객체의 정보를 출력합니다.

문법

LS [object_type|object_name]

항목

설명

None

object_type이나 object_name을 생략하면 사용자가 소유한 모든 객체를 출력한다.

object_type

다음 중에 하나를 설정한다.

  • FUNCTION

  • INDEX

  • PACKAGE

  • PROCEDURE

  • SEQUENCE

  • SYNONYM

  • TABLE

  • TABLESPACE

  • TRIGGER

  • USER

  • VIEW

object_name

출력할 객체의 이름이다. 임의의 패턴을 나타내는 퍼센트(%) 문자를 사용할 수 있다.

예제

SQL> LS 
NAME		   SUBNAME		OBJECT_TYPE
---------------    -------------        ---------------
SYS_CON100	                        INDEX			 
SYS_CON400				INDEX
SYS_CON700				INDEX
_DD_CCOL_IDX1                           INDEX
......중간 생략......				
UTL_RAW                                 PACKAGE 
DBMS_STATS                              PACKGE BODY
TB_HIDDEN2                              PACKGE BODY

SQL>
..... 전체 객체를 출력한다. .....

SQL> LS TABLESPACE 
TABLESPACE_NAME
-----------------------------------
SYSTEM 
UNDO 
TEMP 
USR
..... 타입이 TABLESPACE인 모든 객체를 출력한다. .....

SQL> LS USER 
USERNAME
------------------------------------
SYS
..... 현재 시스템에 접속하고 있는 사용자를 조회한다. .....

PASSWORD

사용자의 패스워드를 변경하기 위한 명령어입니다.

문법

PASSW[ORD] [username]

항목

설명

username

패스워드를 변경할 사용자 이름이다.

이 값이 생략된 경우 현재 접속된 사용자의 패스워드를 변경한다.

예제

SQL> PASSWORD
Changing password for 'TIBERO'

Enter old password: ...기존 패스워드를 입력한다... 
Enter new password: ...새로운 패스워드를 입력한다... 
Confirm new password: ...확인을 위해 한번 더 입력한다...

Password changed successfully. 
SQL>

PAUSE

사용자가 <Enter> 키를 누를 때까지 잠시 수행을 멈춥니다. 메시지를 입력할 경우 해당 메시지를 화면에 출력합니다.

문법

PAU[SE] [message]

항목

설명

message

사용자가 <Enter> 키를 누를 때 화면에 보여줄 메시지이다.

예제

SQL> PAUSE please enter... 
please enter...
..... <Enter>키를 누른다. .....
SQL>

PING

특정 데이터베이스에 대해 접속가능한 상태인지를 출력합니다.

문법

PING connect_identifier

항목

설명

connect_identifier

접속할 데이터베이스 이름이다.

예제

SQL> PING tibero7 
Server is alive.

SQL>

PRINT

사용자가 정의한 바인드 변수의 이름과 값을 출력합니다.

문법

PRI[NT] [variable...]

항목

설명

variable을 생략할 경우 모든 바인드 변수를 출력한다.

variable

출력할 바인드 변수 이름의 목록이다.

예제

SQL> VARIABLE x NUMBER 
SQL> EXECUTE :x := 5;
SQL> PRINT x

        x
---------
        5
SQL>

PROMPT

특정 메시지나 빈 라인을 화면에 출력합니다.

문법

PRO[MPT] [message]

항목

설명

None

message를 생략할 경우 빈 라인을 출력한다.

message

화면에 보여 줄 메시지이다.

예제

아래는 외부에서 작성한 SQL 파일의 예이고, 이름은 PromptUsage.sql 입니다.

PROMPT >>> Test is started. 
CREATE TABLE T (c1 NUMBER); 
INSERT INTO T VALUES (1);
PROMPT Value 1 is inserted. 
COMMIT;
PROMPT <<< Test is ended.

아래는 위 PromptUsage.sql 을 실행한 결과입니다.

SQL> @PromptUsage
>>> Test is started.
Table 'T' created.
1 row inserted.
Value 1 is inserted.
Commit succeeded.
<<< Test is ended.
File finished.

SQL>

QUIT

EXIT 명령어와 동일합니다.

문법

Q[UIT] [SUCCESS|FAILURE|WARNING|n|variable|:variable] [COMMIT|ROLLBACK]

RESTORE

사용자가 선택한 정보를 지정한 파일로부터 복원합니다.

문법

REST[ORE] HIST[ORY] filename[.ext]

항목

설명

filename[.ext]

읽을 파일 이름이다. 만약 확장자가 생략된 경우 SUFFIX에 설정된 값을 사용한다.

예제

SQL> RESTORE HISTORY history.sql

RUN

/ 명령어와 동일하지만, 이 명령어를 사용할 경우 SQL 버퍼에 저장된 문장을 화면에 출력합니다.

문법

R[UN]

예제

SQL> select 1 from dual;

        1
---------
        1

1 row selected.

SQL> RUN
     1 select 1 from dual 1
     
        1
---------
        1 

row selected.

SAVE

사용자가 선택한 정보를 지정한 파일에 저장합니다.

SAVE CREDENTIAL에 대한 사용법은 “접속 정보 암호화 기능”에서 구체적으로 설명합니다.

문법

SAVE CRED[ENTIAL] [filename]
SAVE HIST[ORY] filename[.ext] [CRE[ATE]|REP[LACE]|APP[END]]

항목

설명

CREDENTIAL

데이터베이스 접속 정보를 암호화한다.

filename을 생략하면 환경변수 ISQL_WALLET_PATH에 설정된 파일에 저장한다.

HISTORY

히스토리에 저장된 명령어들을 지정한 파일로 저장한다. 만약 확장자가 생략된 경우 SUFFIX에 설정된 값을 사용한다.

  • CREATE : 파일이 없을 경우엔 새로 생성하며, 이미 존재할 경우엔 오류가 발생 한다. (기본값)

  • REPLACE : 파일이 없을 경우엔 새로 생성하며, 이미 존재할 경우엔 덮어 쓴다.

  • APPEND : 파일이 없을 경우엔 새로 생성하며, 이미 존재할 경우엔 이어 쓴다.

filename

저장할 파일 이름이다.

예제

SQL> SAVE CREDENTIAL
SQL> SAVE CREDENTIAL "./wallet.dat" 
SQL> SAVE HISTORY history.sql
SQL> SAVE HISTORY history.sql APPEND

SET

tbSQL 유틸리티의 시스템 변수를 설정합니다. SET 명령어로 설정된 시스템 변수는 SHOW 명령어를 사용 하여 출력한다. 단, 변경된 시스템 변수는 현재 세션 내에서만 유효합니다.

각각의 시스템 변수에 대해서는 “시스템 변수”에서 구체적으로 설명합니다.

문법

SET {parameter} {value}  

항목

설명

parameter

tbSQL 유틸리티 시스템 변수의 이름이다.

value

tbSQL 유틸리티 시스템 변수의 값이다.

예제

SQL> SET AUTOCOMMIT ON

SHOW

tbSQL 유틸리티의 시스템 변수를 출력합니다. 출력할 정보를 파라미터를 사용하여 선택할 수 있으며, 모든 정보를 출력할 수 있습니다.

문법

SHO[W] {option}
  • option 아래는 option에 입력할 수 있는 항목에 대한 설명입니다.

항목

설명

system_parameter

주어진 이름에 해당하는 tbSQL 유틸리티의 시스템 변수를 출력한다.

ALL

모든 tbSQL 유틸리티 시스템 변수를 출력한다.

ERROR

앞서 발생한 PSM 프로그램의 에러를 출력한다.

PARAM[ETERS] [name]

주어진 이름에 해당하는 데이터베이스 시스템 변수를 출력한다.

단, 이름이 생략될 경우에는 모든 시스템 변수를 출력한다.

RELEASE

tbSQL 유틸리티의 릴리즈 정보를 출력한다.

SQLCODE

가장 최근에 수행한 SQL에 대한 SQLCODE를 출력한다.

예제

SQL> SHOW autocommit 
SQL> SHOW all
SQL> SHOW error
SQL> SHOW param db_name 
SQL> SHOW release
SQL> SHOW SQLCODE

SPOOL

화면에 출력되는 모든 내용에 대해 현재 디렉터리 내 파일로 생성합니다. 단, HOST 명령어와 ! 명령어의 결과는 제외됩니다.

문법

SP[OOL] [filename [APP[END]]|OFF]

항목

설명

None

SPOOL 명령어만을 입력하면 SPOOL 명령어의 현재 실행 상태를 출력한다.

filename

출력을 저장할 파일의 이름이다.

APP[END]

출력 파일의 끝에 이어붙일지 여부이다.

OFF

출력 파일의 저장을 중지한다.

예제

SQL> SPOOL report.txt 
SQL> SPOOL OFF

START

@ 명령어와 동일합니다.

문법

STA[RT] {filename}

항목

설명

filename

스크립트 파일의 이름이다.

TBDOWN

Tibero 데이터베이스를 종료합니다. 긴급성에 따라 종료 옵션을 선택할 수 있으며 옵션에 따라 데이터베이스를 재시동할 때 복구 과정이 필요할 수 있습니다. 이 명령어를 실행하려면 SYSDBA로 데이터베이스에 접속해야 합니다.

문법

TBDOWN [NORMAL|POST_TX|IMMEDIATE|ABORT]

항목

설명

NORMAL

현재 접속 중인 모든 사용자가 접속을 종료할 때까지 기다린 후 종료한다. (기본값)

POST_TX

현재 진행 중인 트랜잭션이 종료될 때까지 기다린 후 종료한다.

IMMEDIATE

현재 진행 중인 트랜잭션을 롤백한 후 강제 종료한다.

ABORT

현재 진행 중인 트랜잭션을 롤백하지 않고 즉시 종료한다.

예제

SQL> TBDOWN
SQL> TBDOWN ABORT

UNDEFINE

ACCEPT 명령어 등으로 정의된 치환 변수를 삭제합니다.

문법

UNDEF[INE] [variable...]

항목

설명

None

[variable...]를 생략할 경우 모든 치환 변수를 삭제한다.

variable...

치환 변수 이름의 목록이다.

예제

SQL> UNDEFINE x
SQL> UNDEFINE x y z  

VARIABLE

PSM 프로그램이나 SQL 문장에서 사용할 수 있는 사용자가 정의한 바인드 변수를 선언합니다.

문법

VAR[IABLE] [variable [datatype]]

항목

설명

None

VARIABLE 명령어만 사용할 때에는 전체 바인드 변수를 화면에 출력한다.

variable

바인드 변수의 이름이다.

datatype

데이터 타입이다. 현재는 다음의 타입을 지원한다.

  • NUMBER

  • CHAR(n)

  • VARCHAR(n)

  • VARCHAR2(n)

  • NCHAR(n)

  • NVARCHAR2(n)

  • RAW(n)

  • BLOB

  • CLOB

  • NCLOB

  • DATE

  • TIMESTAMP

  • REFCURSOR

예제

SQL> VARIABLE x NUMBER
SQL> EXEC :x := 1;

PSM completed.

SQL> SELECT :x FROM DUAL;
        :x
----------
         1
1 row selected.
SQL>

WHENEVER

오류가 발생한 경우 tbSQL의 동작을 정의합니다.

문법

WHENEVER {OSERROR|SQLERROR}
    {EXIT [SUCCESS|FAILURE|WARNING|n|variable|:variable] | 
    CONTINUE [NONE|COMMIT|ROLLBACK]}
  • clause1

항목

설명

OSERROR

tbSQL이 실행 중인 환경의 운영체제로부터 발생한 오류에 대해 지정한 동작을 수행한다.

SQLERROR

SQL 문장을 수행하는 중에 발생한 오류에 대해 지정한 동작을 수행한다. 단, tbSQL에서 발생한 오류는 무시한다.

  • clause2 (기본값: CONTINUE)

항목

설명

EXIT

오류가 발생할 때 프로그램을 종료한다. 반환 코드에 대한 정의는 EXIT 명령어를 참조한다.

CONTINUE

오류가 발생하더라도 계속 다음 명령을 수행한다.

  • NONE : 트랜잭션에 대하여 아무 처리도 하지 않는다. (기본값)

  • COMMIT : COMMIT을 수행한다.

  • ROLLBACK : ROLLBACK을 수행한다.

예제

SQL> whenever sqlerror exit failure rollback 
SQL> select 1 from no_such_table;
TBR-8033: Specified schema object was not found. 
at line 1, column 16:
select 1 from no_such_table
$ echo exit code: $? 
exit code: 1
$


컬럼 포맷

본 절에서는 tbSQL 유틸리티의 컬럼 포맷을 데이터 타입에 따라 설정하는 방법을 설명합니다.

tbSQL 유틸리티의 컬럼 포맷은 이전 절에서 설명한 COLUMN 명령어를 이용해 설정하고 출력합니다.

문자형

CHAR, NCHAR, VARCHAR, NVARCHAR 타입의 경우 데이터베이스 컬럼의 길이를 디폴트 길이로 가집니다. 데이터의 값이 컬럼의 길이보다 클 때 데이터가 다음 라인에 기록되거나 잘릴 수 있는데, 문자형 포맷을 이용할 경우는 이를 쉽게 처리할 수 있습니다.

문법

COL[UMN] {name} FOR[MAT] A{n}

항목

설명

name

컬럼 이름을 지정한다.

A{n}

A는 소문자 a로도 사용할 수 있으며, n은 문자열 데이터의 길이를 의미한다.

예제

SQL> SELECT 'Tibero is the best choice' test FROM DUAL; 

TEST
--------------------------
Tibero is the best choice

1 row selected.

SQL> COL test FORMAT a10
SQL> SELECT 'Tibero is the best choice' test FROM DUAL; 

TEST
----------
Tibero is
the best c 
hoice

1 row selected.

SQL>

숫자형

숫자형의 컬럼 포맷을 설정하는 세부 내용은 다음과 같습니다.

문법

col_name} FOR[MAT] {fmt_str}
  • 입력 항목

항목

설명

col_name

컬럼 이름을 지정한다.

fmt_str

다음 표에서 설명한 컬럼 포맷을 지정한다.

  • fmt_str 포맷 다음은 fmt_str에 지정할 수 있는 포맷입니다.

포맷

설정 예

설명

쉼표(,)

9,999

주어진 위치에 쉽표(,)를 출력한다.

점(.)

9.999

정수 부분과 소수 부분을 분리하는 위치에 점(.)을 출력한다.

$

$9999

$를 맨 앞에 출력한다.

0

0999, 9990

0을 맨 앞이나 뒤에 출력한다.

9

9999

주어진 자릿수만큼 숫자를 출력한다.

B

B9999

정수 부분이 0일 경우 공백으로 치환한다.

C

C9999

주어진 위치에 ISO currency symbol을 출력한다.

D

9D999

실수의 정수와 소수를 분리하기 위해 decimal 문자를 출력한다.

EEEE

9.99EEEE

과학적 기수법에 의해 출력한다.

G

9G999

정수 부분의 주어진 위치에 그룹 분리자를 출력한다.

L

L9999

주어진 위치에 local currency symbol을 출력한다.

MI

9999MI

음수 뒤에 마이너스 기호를 출력하고, 양수 뒤에 공백을 출력한다.

PR

9999PR

음수인 경우에 '<'와 '>'로 감싸서 출력하고, 양수인 경우에 양쪽에 공백을 출력한다.

RN

RN

대문자 로마숫자로 출력한다.

rn

rn

소문자 로마숫자로 출력한다.

S

S9999, 9999S

양수/음수 기호를 맨 앞이나 뒤에 출력한다.

TM

TM

가능한 작은 수를 출력한다.

U

U9999

주어진 위치에 dual currency symbol을 출력한다.

V

99V999

10n만큼 곱한 값을 출력한다.

여기서 n은 V뒤에 오는 9의 개수이다.

X

XXXX, xxxx

16진수 형태로 출력한다.

예제

SQL> COLUMN x FORMAT 999,999 
SQL> SELECT 123456 x FROM DUAL;

        X
----------
  123,456

1 row selected.


제약 사항

본 절에서는 tbSQL 유틸리티의 제약사항을 설명합니다.

항목

제한

command-line 길이

최대 2047 Bytes

Last updated