dbsql 命令
dbsql 命令调用 Db2® SQL 命令解释器。
可以从已安装 IBM® Db2 Warehouse on Cloud 支持工具的远程系统运行此命令。根据数据库用户帐户特权,您可使用 SQL 命令解释器来运行查询和/或执行管理操作,例如创建和删除对象以及管理数据库。
基本命令语法如下所示:
dbsql [options] [security options]如果您使用的是 IBM Db2 Warehouse,那么运行该命令的方式取决于您获取 Db2 支持工具的位置。有关如何运行该命令的信息,请参阅:Db2 支持工具概述。注: 对于
IBM Db2 Warehouse,以 root 用户身份运行 dbsql 时,或使用
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>
或者 -D <dbname> |
指定要连接的数据库的名称。如果未指定此参数,那么 dbsql 命令会提示您指定数据库。缺省数据库名称为 $DB_DATABASE。 |
| -schema <schemaname> | 指定要连接的模式的名称。如果未指定此参数,那么 dbsql 命令将使用缺省模式,即,与数据库用户名匹配的模式。缺省模式名称为 $DB_SCHEMA。 |
| -e | 回显发送到服务器的查询。 |
| -E | 显示内部命令所生成的查询。 |
| -f <file name> | 运行所指定文件中的查询,然后退出。 对于 Db2 Warehouse,必须指定可从容器内访问的绝对路径。示例如下:
|
| -F <string> | 设置字段分隔符。缺省值:竖线 (|)。这等同于指定 -P fieldsep=<string>。 对于任何二进制字符、控制字符或不可打印的字符,请使用美元符号 ($) 字符作为值的前缀。例如,对于“制表符”值,请指定 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 的端口。缺省值为 hardwired。 |
| -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>
或者 -U <username> |
指定数据库用户名。如果未指定此参数,那么 dbsql 命令会提示您输入用户名。缺省用户名是 $DB_USER。注: 对于 Db2 Warehouse,以 root 用户身份或通过使用 docker exec -it Db2wh dbsql 运行 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,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 内部斜杠命令。