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');\""
    また、2 番目の黒丸項目で説明したように、二重引用符をエスケープする必要があります。
次の表では、dbsql のコマンド・オプションについて説明します。
表 1. dbsql コマンドのオプション
オプション 説明
-a スクリプトからのすべての入力をエコーします。
-A 桁揃えなしの表出力モードを使用します。これは -P format=unaligned を指定するのと同じです。
-c <query> 単一の照会 (またはスラッシュ・コマンド) を実行して、終了。コマンド行から照会を直接呼び出す場合は、照会を二重引用符で囲む必要があります。
-d <dbname>
または
-D <dbname>
接続先のデータベースの名前を指定します。このパラメーターを指定しなかった場合、dbsql コマンドから、データベースを指定するように求めるプロンプトが出されます。 デフォルトのデータベース名は $DB_DATABASE です。
-schema <schemaname> 接続先のスキーマの名前を指定します。このパラメーターを指定しなかった場合、dbsql コマンドはデフォルトのスキーマ (データベースのユーザー名と一致するスキーマ) を使用します。 デフォルト・スキーマ名は $DB_SCHEMA です。
-e サーバーに送信される照会をエコーします。
-E 内部コマンドで作成される照会を表示。
-f <file name> 指定されたファイルから照会を実行して、終了します。
Db2 Warehouse の場合は、コンテナー内部からアクセスできる絶対パスを指定する必要があります。 次に例を示します。
dbsql -f /mnt/clusterfs/scratch/query.sql 
-F <string> フィールド分離文字を設定します。デフォルトは垂直バー (|) です。 これは、-P fieldsep=<string> を指定するのと同じです。

バイナリー文字、制御文字、または印刷不能文字の場合は、値の先頭にドル記号 ($) を付けます。 例えば、タブ値の場合は dbsql -F $'¥t' を指定します。

-h (または -? または --help) dbsql コマンドのヘルプを表示します。
-host <host> または -h <host> データベース・サーバーのホスト名を指定します。デフォルトはドメイン・ソケットです。
-H 表の出力モードを HTML に設定します。これは、-P format=html を指定するのと同じです。
-l 使用可能なデータベースをリストして、終了します。
-n readline を無効にします。日本語、中国語、韓国語などの入力方式で dbsql を使用する場合に必要です。
-o <filename> 照会の出力を指定のファイルに送ります。ファイル名の代わりに垂直バー (|) を指定すると出力はパイプに送られます。
-O <filename> 照会の出力およびエラー・メッセージを、指定のファイルに送信します。 ファイル名の代わりに垂直バー (|) を指定した場合は、パイプに送信されます。
-port | -p <port> データベース・サーバー・ポートを指定します。 これは、SSL が構成されたポートであってはなりません。デフォルトはハードワイヤードです。
-P var[=arg] var が表す印刷オプションに、arg が表す値を設定します。 var オプションには以下のものがあります。
fieldsep=string
フィールド分離文字を設定します。デフォルトは垂直バー (|) です。
recordsep=string
レコード分離文字を設定します。 デフォルトは改行文字です。
border=value
HTML 表ボーダー・サイズを設定します。
expanded
拡張表出力。
tuples_only
行のみをプリント。
title=string
HTML 表タイトルを設定します。
tableattr=text
幅や枠などの HTML 表タグ・オプションを設定します。
null=string
指定したストリングを NULL 値として表示します。
format=format
桁合わせされない表出力モードを使用するには unaligned、HTML 表出力モードを使用するには html、LaTeX 形式を使用するには latex を指定します。
-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>
または
-U <username>
データベース・ユーザー名を指定します。このパラメーターを指定しなかった場合、dbsql コマンドから、ユーザー名を入力するように求めるプロンプトが出されます。 デフォルト・ユーザー名は $DB_USER です。
注: Db2 Warehouse では、dbsql をユーザー root として実行する場合、または docker exec -it Db2wh dbsql を使用する場合は、ユーザー名パラメーターで大/小文字が区別されます。
-v <name>=<value> 指定した dbsql セッション変数に指定値を設定します。 次の例のように、設定する変数ごとにこのパラメーターを 1 回指定します。
dbsql -v HISTSIZE=600 -v USER=user1 -v PASSWORD=password
-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 では、root ユーザーはイメージ・コンテナー・ホストのコマンド行から次の同等のコマンドを発行することもできます。
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 内部スラッシュ・コマンド」を参照してください。