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 유틸리티는 이처럼 텍스트 모드의 화면에서 입력을 받고, 사용자의 요구에 따라 결과를 출력합니다.
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 유틸리티의 시스템 변수에 설정할 값은 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 테이블로 작성한다. (기본값)
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 프로그램의 입력을 마쳤습니다. 마지막 라인에서 다른 문자나 문자열 없이 오직 블 록종료 문자만 단독으로 한 라인을 형성하고 있는 것을 확인할 수 있습니다.
tbSQL 유틸리티의 명령어 입력
tbSQL 유틸리티의 명령어에는 SQL 수행과 관련된 명령어나 기타 Tibero 데이터베이스 관리를 위한 명령어 등이 포함됩니다.
명령어의 실행
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 사용자로 접속하여 $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.
명령어
본 절에서는 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
특정 데이터베이스에 대해 접속가능한 상태인지를 출력하는 명령어
사용자가 정의한 바인드 변수의 값을 출력하는 명령어
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 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