제1장 tbSQL

내용 목차

1.1. 개요
1.2. 빠른 시작
1.2.1. 실행
1.2.2. 데이터베이스 접속
1.2.3. 인터페이스
1.2.4. 환경설정
1.2.5. 종료
1.3. 시스템 변수
1.3.1. AUTOCOMMIT
1.3.2. AUTOTRACE
1.3.3. BLOCKTERMINATOR
1.3.4. COLSEP
1.3.5. CONCAT
1.3.6. DDLSTATS
1.3.7. DEFINE
1.3.8. DESCRIBE
1.3.9. ECHO
1.3.10. EDITFILE
1.3.11. ESCAPE
1.3.12. EXITCOMMIT
1.3.13. FEEDBACK
1.3.14. HEADING
1.3.15. HEADSEP
1.3.16. HISTORY
1.3.17. INTERVAL
1.3.18. LINESIZE
1.3.19. LONG
1.3.20. NEWPAGE
1.3.21. NUMFORMAT
1.3.22. NUMWIDTH
1.3.23. PAGESIZE
1.3.24. PAUSE
1.3.25. RECSEP
1.3.26. RECSEPCHAR
1.3.27. ROWS
1.3.28. SERVEROUTPUT
1.3.29. SQLPROMPT
1.3.30. SQLTERMINATOR
1.3.31. SUFFIX
1.3.32. TERMOUT
1.3.33. TIME
1.3.34. TIMEOUT
1.3.35. TIMING
1.3.36. TRIMOUT
1.3.37. TRIMSPOOL
1.3.38. UNDERLINE
1.3.39. VERIFY
1.3.40. WRAP
1.4. 기본 기능
1.4.1. 명령어의 입력
1.4.2. 명령어의 실행
1.4.3. 기타 기능
1.5. 고급 기능
1.5.1. 스크립트 기능
1.5.2. DBA를 위한 기능
1.5.3. 사용자 접근 제어 기능
1.5.4. 접속 정보 암호화 기능
1.6. 명령어
1.6.1. !
1.6.2. %
1.6.3. @, @@
1.6.4. /
1.6.5. ACCEPT
1.6.6. APPEND
1.6.7. ARCHIVE LOG
1.6.8. CHANGE
1.6.9. CLEAR
1.6.10. COLUMN
1.6.11. CONNECT
1.6.12. DEFINE
1.6.13. DEL
1.6.14. DESCRIBE
1.6.15. DISCONNECT
1.6.16. EDIT
1.6.17. EXECUTE
1.6.18. EXIT
1.6.19. EXPORT
1.6.20. HELP
1.6.21. HISTORY
1.6.22. HOST
1.6.23. INPUT
1.6.24. LIST
1.6.25. LOADFILE
1.6.26. LOOP
1.6.27. LS
1.6.28. PASSWORD
1.6.29. PAUSE
1.6.30. PING
1.6.31. PRINT
1.6.32. PROMPT
1.6.33. QUIT
1.6.34. RESTORE
1.6.35. RUN
1.6.36. SAVE
1.6.37. SET
1.6.38. SHOW
1.6.39. SPOOL
1.6.40. START
1.6.41. TBDOWN
1.6.42. UNDEFINE
1.6.43. VARIABLE
1.6.44. WHENEVER
1.7. 컬럼 포맷
1.7.1. 문자형
1.7.2. 숫자형

본 장에서는 tbSQL 유틸리티를 소개하고 사용 방법을 설명한다.

tbSQLTibero®(이하 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 유틸리티가 정상적으로 실행되면 위 예제처럼 SQL 프롬프트가 나타난다. 이 프롬프트에서 데이터베이스 사용자는 SQL 문장을 실행할 수 있다.

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

  • 사용법

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

      항목설명
      -h, --help도움말 화면을 출력한다.
      -v, --version버전을 출력한다.
      -s, --silent화면에 시작 메시지와 프롬프트를 출력하지 않는다.
      -i, --ignore로그온 스크립트(tbsql.logon)를 실행하지 않는다.
    • [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 유틸리티를 이용하여 데이터베이스에 접속하는 방법은 다음과 같다.


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

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

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

[예 1.2]와 같이 connect_identifier를 생략하는 경우엔 디폴트 데이터베이스에 접속이 된다. 만약 특정 데이터베이스에 접속하고자 하는 경우엔 connect_identifier를 명시하면 되고, 다음과 같은 두가지 형식으로 사용할 수 있다.

  • DSN(Data Source Name)

    DSN은 tbdsn.tbr 파일이나 Windows에서의 데이터 원본(ODBC)에 정의된 이름을 명시하는 방법이다.

    다음은 tbdsn.tbr 파일의 설정 예이다.

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

    위와 같이 정의된 경우 접속하는 방법은 다음과 같다.

    $ tbsql tibero/tmax@tibero6
    
  • 연결 명세서

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

    • 방법1

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

      사용 예는 다음과 같다.

      $ tbsql 'tibero/tmax@(INSTANCE=(HOST=192.168.36.42)(PORT=8629)(DB_NAME=tibero6))'
      
    • 방법2

      host:port/dbname

      사용 예는 다음과 같다.

      $ tbsql 'tibero/tmax@192.168.36.42:8629/tibero6'
      

다음은 tbSQL 유틸리티를 실행했을 때의 화면이다.

$ tbsql

tbSQL 6

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 유틸리티의 시스템 변수에 대하여 설명한다. tbSQL 유틸리티의 시스템 변수에 설정할 값은 SET 명령어로 설정하고, SHOW 명령어로 출력한다.

다음은 SET 명령어에서 설정할 수 있는 시스템 변수를 요약한 표이다.

시스템 변수기본값설명
AUTOCOMMITOFF자동 커밋 여부를 설정하는 시스템 변수이다.
AUTOTRACEOFF수행 중인 질의의 플랜이나 통계 정보를 출력할지를 설정하는 시스템 변수이다.
BLOCKTERMINATOR"." (0x2E)PSM 문장에서 입력의 마지막을 나타내는 문자를 설정하는 시스템 변수이다.
COLSEP" " (0x20)SQL 문장 중 조회 쿼리에 대한 수행 결과를 보여줄 때 컬럼사이를 구분하는 문자를 지정하는 시스템 변수이다.
CONCAT"." (0x2E)치환 변수 이름의 끝을 나타내는 문자를 설정하는 시스템 변수이다.
DDLSTATSOFFDDL 문장의 플랜이나 통계 정보를 보여줄지를 설정하는 시스템 변수이다.
DEFINE"&" (0x26)치환 변수를 정의할 때 사용할 문자를 지정하는 시스템 변수이다.
DESCRIBEDEPTH 10DESCRIBE 명령어에서 보여줄 객체 명세의 단계를 지정하는 시스템 변수이다.
ECHOOFF@ 또는 START 명령으로 스크립트 파일을 실행시킬 때 스크립트 내에서 실행되는 쿼리를 화면에 출력할지 결정하는 시스템 변수이다.
EDITFILE".tbedit.sql"EDIT 명령어에서 사용하는 파일 이름의 기본값을 설정하는 시스템 변수이다.
ESCAPEOFF이스케이프 문자를 설정하는 시스템 변수이다.
EXITCOMMITON유틸리티 종료시에 커밋 여부를 설정하는 시스템 변수이다.
FEEDBACK0SQL 문장의 수행 결과를 화면에 출력할지를 설정하는 시스템 변수이다.
HEADINGON쿼리 실행 결과를 출력할 때 컬럼의 머릿글을 표시할지를 결정하는 시스템 변수이다.
HEADSEP"|" (0x7C)머릿글의 줄바꿈 문자를 설정하는 시스템 변수이다.
HISTORY50명령어 히스토리의 크기를 설정하는 시스템 변수이다.
INTERVAL1LOOP 명령어에서 각 문장을 수행한 후 대기하는 시간을 설정하는 시스템 변수이다.
LINESIZE80한 라인에 출력할 문자 수를 설정하는 시스템 변수이다.
LONG80VARCHAR보다 큰 문자형 타입의 데이터를 표시하기 위해 사용할 문자 수를 설정하는 시스템 변수이다.
NEWPAGE1각 페이지 시작 부분에 추가할 빈 줄 수를 설정하는 시스템 변수이다.
NUMFORMAT""숫자형 데이터의 기본 컬럼 포맷을 설정하는 시스템 변수이다.
NUMWIDTH10숫자형 데이터의 기본 출력 길이를 설정하는 시스템 변수이다.
PAGESIZE24한 화면에 출력할 라인 수를 설정하는 시스템 변수이다.
PAUSEOFF한 페이지를 출력한 후 다음 페이지를 출력하기 전에 사용자 입력을 기다릴지를 지정하는 시스템 변수이다.
RECSEPWRAPPED로우 구분자를 출력할 단위를 지정하는 시스템 변수이다.
RECSEPCHAR" " (0x20)로우 구분자로 사용할 문자를 설정하는 시스템 변수이다.
ROWSON질의문의 결과를 화면에 출력할 것인지를 설정하는 시스템 변수이다.
SERVEROUTPUTOFFDBMS_OUTPUT 패키지의 결과를 출력할 것인지를 설정하는 시스템 변수이다.
SQLPROMPT"SQL> "화면상의 프롬프트 문자를 설정하는 시스템 변수이다.
SQLTERMINATOR";" (0x3B)SQL 문장을 종료하는 문자를 설정하는 시스템 변수이다.
SUFFIX"sql"파일 확장자의 기본값을 설정하는 시스템 변수이다.
TERMOUTON스크립트에서 수행된 명령어의 결과를 화면에 출력할 것인지를 설정하는 시스템 변수이다.
TIMEOFF현재 시간을 화면에 출력할 것인지를 설정하는 시스템 변수이다.
TIMEOUT3PING 명령어에서 서버가 응답할 때까지 기다릴 시간을 설정하는 시스템 변수이다.
TIMINGOFFSQL, PSM 문장의 결과를 출력할 때마다 수행 시간을 출력할 것인지를 설정하는 시스템 변수이다.
TRIMOUTON화면에 출력되는 라인 뒤에 오는 공백을 제거할 것인지를 설정하는 시스템 변수이다.
TRIMSPOOLOFF스풀링 중인 라인 뒤에 오는 공백을 제거할 것인지를 설정하는 시스템 변수이다.
UNDERLINE"-" (0x2D)머릿글의 밑줄로 사용할 문자를 설정하는 시스템 변수이다.
VERIFYON명령을 실행할 때 치환변수가 적용된 내역에 대한 출력 여부를 설정하는 시스템 변수이다.
WRAPON출력할 라인이 긴 경우 나머지를 다음 라인에 출력할 것인지를 설정하는 시스템 변수이다.

다음은 시스템 변수를 설정하는 예이다.

SET AUTOCOMMIT ON
SET PAGESIZE 32
SET TRIMSPOOL ON

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 프로그램을 입력하는 방법이다.

다음은 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 유틸리티의 명령어에 대한 자세한 내용은 “1.6. 명령어”를 참고한다.

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)와 동일한 경우에는 생략해도 무방하다.

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

SQL> START run
SQL> @run

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

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

$ tbsql dbuser/dbuserpassword @run

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

$ tbsql dbuser/dbuserpassword < run.sql

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 6

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 6

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 6

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사용자의 입력을 받아 치환 변수의 값을 설정하는 명령어이다.
APPENDSQL 버퍼에 특정 텍스트 혹은 statement를 덧붙이는 명령어이다.
ARCHIVE LOGRedo 로그 파일 정보를 출력하는 명령어이다.
CHANGESQL 버퍼의 현재 라인에서 패턴 문자를 찾아 주어진 문자로 변환하는 명령어이다.
CLEAR설정된 옵션을 초기화하거나 지우는 명령어이다.
COLUMN컬럼의 출력 속성을 설정하는 명령어이다.
CONNECT특정 사용자 ID로 데이터베이스에 접속하는 명령어이다.
DEFINE치환 변수를 정의하거나 출력하는 명령어이다.
DELSQL 버퍼에 저장된 라인을 지우는 명령어이다.
DESCRIBE지정된 객체의 컬럼 정보를 출력하는 명령어이다.
DISCONNECT현재 데이터베이스로부터 접속을 해제하는 명령어이다.
EDIT특정 파일 또는 SQL 버퍼의 내용을 외부 편집기를 이용하여 편집하는 명령어이다.
EXECUTE단일 PSM 문장을 수행하는 명령어이다.
EXIT

tbSQL 유틸리티를 종료하는 명령어이다.

QUIT 명령어와 동일하다.

EXPORTSELECT 문장의 수행 결과나 테이블 데이터를 파일로 출력하는 명령어이다.
HELP도움말을 출력하는 명령어이다.
HISTORY실행한 명령어의 히스토리를 출력하는 명령어이다.
HOST

운영체제 명령어를 실행하는 명령어이다.

! 명령어와 동일하다.

INPUTSQL 버퍼의 현재 라인 뒤에 새로운 라인을 추가하는 명령어이다.
LISTSQL 버퍼 내의 특정 내용을 출력하는 명령어이다.
LOADFILETibero의 테이블을 Oracle의 SQL*Loader 툴이 인식할 수 있는 형식으로 저장하는 명령어이다.
LOOP단일 명령어를 무한 반복 수행하는 명령어이다.
LS현재 사용자가 생성한 데이터베이스 객체를 출력하는 명령어이다.
PASSWORD사용자 패스워드를 변경하기 위한 명령어이다.
PAUSE사용자가 <Enter> 키를 누를 때까지 실행을 멈추는 명령어이다.
PING특정 데이터베이스에 대해 접속가능한 상태인지를 출력하는 명령어이다.
PRINT사용자가 정의한 바인드 변수의 값을 출력하는 명령어이다.
PROMPT사용자가 정의한 SQL 문장이나 빈 라인을 그대로 화면에 출력하는 명령어이다.
QUIT

tbSQL 유틸리티를 종료하는 명령어이다.

EXIT 명령어와 동일하다.

RESTORE선택한 정보를 파일로부터 복원하는 명령어이다.
RUN

현재 SQL 버퍼 내의 SQL 문장이나 PSM 프로그램을 실행하는 명령어이다.

/ 명령어와 동일하다.

SAVE선택한 정보를 파일에 저장하는 명령어이다.
SETtbSQL 유틸리티의 시스템 변수를 설정하는 명령어이다.
SHOWtbSQL 유틸리티의 시스템 변수를 출력하는 명령어이다.
SPOOL화면에 출력되는 내용을 모두 외부 파일에 저장하는 과정을 시작하거나 종료하는 명령어이다.
START

스크립트 파일을 실행하는 명령어이다.

@ 명령어와 동일하다.

TBDOWNTibero를 종료하는 명령어이다.
UNDEFINE하나 이상의 치환 변수를 삭제하는 명령어이다.
VARIABLE사용자가 정의한 바인드 변수를 선언하는 명령어이다.
WHENEVER에러가 발생한 경우의 동작을 정의하는 명령어이다.

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

CHANGE 명령어의 세부 내용은 다음과 같다.

  • 문법

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

      항목설명
      delim

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

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

      old

      바꾸려고 하는 패턴이다.

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

      사용방법은 예제를 참조한다.

    • 옵션

      다음은 CHANGE 명령어의 옵션에 대한 설명이다.

      옵션설명
      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>

! 명령어와 동일하다.

HOST 명령어의 세부 내용은 다음과 같다.

  • 문법

    HO[ST] [command]
    항목설명
     

    명령어 없이 HOST만 입력하면 운영체제의 명령 프롬프트로 나가서 운영체제 명령어를 여러 번 입력할 수 있다.

    이때 다시 tbSQL 유틸리티로 돌아오려면 EXIT를 입력한다.

    command운영체제의 명령어이다.

EXIT 명령어와 동일하다.

QUIT 명령어의 세부 내용은 다음과 같다.

  • 문법

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

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

RUN 명령어의 세부 내용은 다음과 같다.

  • 문법

    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 CREDENTIAL에 대한 사용법은 “1.5.4. 접속 정보 암호화 기능”에서 구체적으로 설명한다.

SAVE 명령어의 세부 내용은 다음과 같다.

  • 문법

    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
    

tbSQL 유틸리티의 시스템 변수를 설정한다. SET 명령어로 설정된 시스템 변수는 SHOW 명령어를 사용하여 출력한다. 단, 변경된 시스템 변수는 현재 세션 내에서만 유효하다. 각각의 시스템 변수에 대해서는 “1.3. 시스템 변수”에서 구체적으로 설명한다.

SET 명령어의 세부 내용은 다음과 같다.

  • 문법

    SET {parameter} {value}
    항목설명
    parametertbSQL 유틸리티 시스템 변수의 이름이다.
    valuetbSQL 유틸리티 시스템 변수의 값이다.
  • 예제

    SQL> SET AUTOCOMMIT ON

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

SPOOL 명령어의 세부 내용은 다음과 같다.

  • 문법

    SP[OOL] [filename [APP[END]]|OFF]
    항목설명
     SPOOL 명령어만을 입력하면 SPOOL 명령어의 현재 실행 상태를 출력한다.
    filename출력을 저장할 파일의 이름이다.
    APP[END]출력 파일의 끝에 이어붙일지 여부이다.
    OFF출력 파일의 저장을 중지한다.
  • 예제

    SQL> SPOOL report.txt
    SQL> SPOOL OFF

@ 명령어와 동일하다.

START 명령어의 세부 내용은 다음과 같다.

  • 문법

    STA[RT] {filename}
    항목설명
    filename스크립트 파일의 이름이다.

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

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

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