dbsql 명령
dbsql 명령은 Db2® SQL 명령 인터프리터를 호출합니다.
IBM® Db2 Warehouse on Cloud 지원 도구를 설치한 원격 시스템에서 명령을 실행할 수 있습니다. 데이터베이스 사용자 계정 권한을 기반으로 SQL 명령 인터프리터를 사용하여 쿼리를 실행하고 오브젝트 작성 및 삭제, 데이터베이스 관리 등의 관리 조치를 수행할 수 있습니다.
기본 명령 구문은
다음과 같습니다.
dbsql [options] [security options]IBM Db2 Warehouse를 사용 중인 경우,
명령을 실행하는 방법은 Db2 지원 도구를 가져온 위치에 따라
다릅니다. 명령 실행 방법에 대한 정보는 Db2 지원 도구 개요의 내용을
참조하십시오. 참고: IBM Db2 Warehouse의 경우, dbsql을 사용자 root로 실행할 때나
docker exec -it Db2wh dbsql을 사용하여
다음 예에 표시된 대로 컨테이너 파일 시스템에서 절대 파일 경로를 제공해야 합니다.
dbsql -f /mnt/clusterfs/scratch/query.sql
docker exec ... 명령에서 직접 쿼리를 호출할 경우,
다음 규칙이 적용됩니다.
- 다음 예에서와 같이 작은따옴표를 사용하여 쿼리를 묶으려면 큰따옴표를
이스케이프하십시오.
docker exec -it Db2wh dbsql ... -c '"SELECT * FROM test_table"'참고: 제품 컨테이너를 사용 중인 경우에만 이 제한사항이 적용됩니다. 클라이언트 컨테이너에서는 작은따옴표 마크를 사용하여 쿼리를 묶을 필요가 없습니다. - 쿼리에 작은따옴표와 큰따옴표가 혼용되어 있는 경우, 다음 예와 같이 큰 따옴표를
백슬래시(\)로 이스케이프하십시오.
docker exec -it Db2wh dbsql ... -c '"CREATE' SCHEMA '\"MixedCase'\''WithQuotes\""' - 쿼리에 보존해야 하는 작은따옴표가 포함된 경우, 다음 예에서와 같이 쿼리를 큰따옴표로
묶으십시오.
또한 두 번째 글머리 기호에서 설명한 것처럼 큰따옴표 마크를 이스케이프해야 합니다.docker exec -it Db2wh dbsql ... -c "\"INSERT INTO dbsql_tbl VALUES(1, 'aaaaa');\""
다음 테이블에서는 dbsql 명령 옵션을 설명합니다.
| 옵션 | 설명 |
|---|---|
| -a | 스크립트의 모든 입력을 에코합니다. |
| -A | 정렬되지 않은 테이블 출력 모드를 사용합니다. 이는 -P format=unaligned를 지정하는 것과 동일합니다. |
| -c <query> | 단일 쿼리(또는 슬래시 명령)만 실행한 후 종료합니다. 명령행에서 직접 쿼리를 호출할 경우, 쿼리를 큰따옴표로 묶어야 합니다. |
|
-d <dbname>
or -D <dbname> |
연결할 데이터베이스의 이름을 지정합니다. 이 매개변수를 지정하지 않는 경우
dbsql 명령은 데이터베이스를 지정하도록 프롬프트됩니다. 기본 데이터베이스 이름은
$DB_DATABASE입니다.
|
| -schema <schemaname> | 연결할 스키마의 이름을
지정합니다. 이 매개변수를 지정하지 않는 경우 dbsql 명령은 기본 스키마를 사용하며,
이는 데이터베이스 사용자 이름과 일치하는 스키마입니다. 기본 스키마 이름은
$DB_SCHEMA입니다. |
| -e | 서버에 전송되는 쿼리를 에코합니다. |
| -E | 내부 명령이 생성하는 쿼리를 표시합니다. |
| -f <file name> | 지정된 파일에서 쿼리를 실행한 후 종료하십시오. Db2 Warehouse의 경우, 컨테이너 내에서 액세스할 수 있는
절대 경로를 지정해야 합니다. 예는 다음과 같습니다.
|
| -F <string> | 필드 구분자를 설정합니다. 기본값은 수직바(|)입니다. 이는
-P fieldsep=<string>을 지정하는 것과
동일합니다. 2진, 제어 또는 인쇄할 수 없는 문자의 경우, 달러 기호($) 문자를 값의 접두부로 놓습니다. 예를 들어 탭 값으로 dbsql -F $'\t'를 지정하십시오. |
| -h(또는 -? 또는 --help) | dbsql 명령에 대한 도움말을 표시합니다. |
| -host <host> 또는 -h <host> | 데이터베이스 서버의 호스트 이름을 지정합니다. 기본값은 도메인 소켓입니다. |
| -H | 테이블 출력 모드를 HTML로 설정합니다. 이는 -P format=html을 지정하는 것과 동일합니다. |
| -l | 사용 가능한 데이터베이스를 나열한 후 종료합니다. |
| -n | 리드행을 사용 안함으로 설정합니다. 일본어, 중국어, 한국어 등 입력 메소드와 함께 dbsql을 사용할 경우 필요합니다. |
| -o <filename> | 쿼리 출력을 지정된 파일에 전송합니다(파일 이름 대신 수직바(|)가 지정된 경우에는 파이프에 전송). |
| -O <filename> | 쿼리 출력 및 오류 메시지를 지정된 파일에 전송합니다(파일 이름 대신 수직바(|)가 지정된 경우에는 파이프에 전송). |
| -port | -p <port> | 데이터베이스 서버 포트를 지정합니다. SSL이 구성된 포트일 수 없습니다. 기본값은 하드와이어입니다. |
| -P var[=arg] | var로 표시된 인쇄 옵션을 arg로 표시된 값으로
설정하십시오. var 옵션에는 다음이 포함됩니다.
|
| -pw <password> | 데이터베이스 사용자의 비밀번호를 지정합니다. 이 매개변수를 지정하지 않는 경우 dbsql 명령은 비밀번호를 입력하도록 프롬프트됩니다. |
| -q | 메시지를 발행하지 않고 자동으로 실행합니다. 쿼리 출력만 리턴됩니다. |
| -r | 쿼리 출력 끝에 기본적으로 표시되는 행 계수를 제외합니다. |
| -R <string> | 레코드 구분자를 설정합니다. 기본값은 개행 문자입니다. 이는 -P recordsep=<string>을 지정하는 것과 동일합니다. |
| -rev 또는 -Rev | 소프트웨어 버전 정보를 표시하고 종료합니다. |
| -s | 각각의 쿼리를 확인해야 하는 단일 단계 모드를 사용합니다. |
| -S | 개행 문자로 쿼리를 종료하는 단일 행 모드를 사용합니다. |
| -t | 행만 인쇄합니다. 이는 -P tuples_only를 지정하는 것과 동일합니다. |
| -terminator <char> | SQL 쿼리 종단자를 지정된 문자로 설정합니다. 기본값은 ';'입니다. |
| -time | 쿼리를 완료할 때까지의 경과 시간을 인쇄합니다. |
| -T <text> | HTML 테이블 태그 옵션(예: 너비 및 테두리)을 설정합니다. 이는 -P tableattr=<text>를 지정하는 것과 동일합니다. |
|
-u <username>
or -U <username> |
데이터베이스 사용자를
지정합니다. 이 매개변수를 지정하지 않을 경우 dbsql 명령은 사용자 이름을
입력하도록 프롬프트를 표시합니다. 기본 사용자 이름은
$DB_USER입니다. 참고: Db2 Warehouse의 경우 dbsql을
root 사용자로 실행하거나 docker exec -it
Db2wh dbsql을 사용할 때는 사용자 이름 매개변수가 대소문자를 구분합니다.
|
| -v <name>=<value> | 지정된 dbsql 세션 변수를 지정된 값으로
설정하십시오. 설정할 각각의 변수에 대해 이 매개변수를 한 번 지정하십시오.
예를 들면 다음과 같습니다.
|
| -V | 버전 정보를 표시한 후 종료합니다. |
| -w | 데이터베이스 사용자의 비밀번호를 요구하지 않습니다. 비밀번호는 다른 메커니즘(예: Kerberos)에서 제공됩니다. |
| -W <password> 또는 -pw <password> | 데이터베이스 사용자의 비밀번호를 지정합니다. |
| -x | 확장된 테이블 출력을 사용합니다. 이는 -P expanded를 지정하는 것과 동일합니다. |
| -X | 시작 파일( ~/.dbsqlrc)를 읽지 않습니다. |
| -securityLevel <level> | Db2 환경의 경우 이 옵션이 지원되지 않습니다. |
| -caCertFile <path> | Db2 환경의 경우 이 옵션이 지원되지 않습니다. |
다음 예는 dbsql 명령 인터프리터를
여는 명령을 표시합니다.
dbsql -d bludb -schema ap_region -u admin1 -pw mypassword
Welcome to dbsql, an interactive SQL terminal.
Type: \? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
BLUDB.AP_REGION(ADMIN1)=>Db2 Warehouse를 통해 루트 사용자는 또한 이미지 컨테이너 호스트의 명령행에서
다음 등가의 명령을 발행할 수 있습니다.
docker exec -it Db2wh dbsql -d bludb -schema ap_region -u admin1 -pw mypassword
Welcome to dbsql, an interactive SQL terminal.
Type: \? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
BLUDB.AP_REGION(ADMIN1)=>dbsql 대화식 명령 터미널 내에는 다양한 태스크를 수행하기 위해 지정할 수 있는 내부 명령이 있습니다. 각 옵션 앞에 백슬래시(\)가 있으므로 이 옵션을 슬래시 옵션이라고 합니다. 슬래시 명령에 대한 자세한 정보는 dbsql 내부 슬래시 명령의 내용을 참조하십시오.