
# 命令参考
详细的gsql参数请参见[表1]、[表2]、[表3]和[表4]。
 表1常用参数 
| 参数                               | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                         | 取值范围                     |
|:---|:---|:---|
| -c, --command=COMMAND            | 声明gsql要执行一条字符串命令然后退出。                                                                                                                                                                                                                                                                                                                                                                                        | -                        |
| -C, --set-file=FILENAME          | 使用文件作为命令源而不是交互式输入，gsql处理完文件后不退出，继续处理其他内容。                                                                                                                                                                                                                                                                                                                                                                    | 绝对路径或相对路径，且满足操作系统路径命名规则。 |
| -d, --dbname=DBNAME              | 指定想要连接的数据库名称。                                                                                                                                                                                                                                                                                                                                                                                                | 字符串。                     |
| -D, --dynamic-param              | 用于控制执行SQL语句设置变量和${}变量引用方式，具体示例参见[变量](https://support.huaweicloud.com/tg-dws/dws_gsql_002.html#ZH-CN_TOPIC_0000002166775368__zh-cn_topic_0000002166615584_zh-cn_topic_0000001098650792_lc8477a0a74144ad1822fa622fe2f1136)。                                                                                                                                                                                    | -                        |
| -f, --file=FILENAME              | 使用文件作为命令源而不是交互式输入。gsql将在处理完文件后结束。如果FILENAME是-（连字符），则从标准输入读取。 注意： 该参数不支持导入压缩文件。                                                                                                                        | 绝对路径或相对路径，且满足操作系统路径命名规则。 |
| -l, --list                       | 列出所有可用的数据库，然后退出。                                                                                                                                                                                                                                                                                                                                                                                             | -                        |
| -v, --set, --variable=NAME=VALUE | 设置gsql变量NAME为VALUE。 变量的示例和详细说明请参见[变量](https://support.huaweicloud.com/tg-dws/dws_gsql_002.html#ZH-CN_TOPIC_0000002166775368__zh-cn_topic_0000002166615584_zh-cn_topic_0000001098650792_lc8477a0a74144ad1822fa622fe2f1136)。                                                       | -                        |
| -X, --no-gsqlrc                  | 不读取启动文件（系统范围的gsqlrc或者用户的\~/.gsqlrc都不读取）。 说明： 启动文件默认为\~/.gsqlrc，或通过PSQLRC环境变量指定。                                                                      | -                        |
| -1 ("one"), --single-transaction | 当gsql使用-f选项执行脚本时，会在脚本的开头和结尾分别加上START TRANSACTION/COMMIT用于把整个脚本当作一个事务执行。这将保证该脚本完全执行成功，或者脚本无效。 说明： 如果脚本中已经使用了START TRANSACTION，COMMIT，ROLLBACK，则该选项无效。 | -                        |
| -?, --help                       | 显示关于gsql命令行参数的帮助信息然后退出。                                                                                                                                                                                                                                                                                                                                                                                      | -                        |
| -V, --version                    | 打印gsql版本信息然后退出。                                                                                                                                                                                                                                                                                                                                                                                              | -                        |
   
 表2输入和输出参数 
| 参数                      | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 取值范围                     |
|:---|:---|:---|
| -a, --echo-all          | 在读取行时向标准输出打印所有内容。 注意： 使用此参数可能会暴露部分SQL语句中的敏感信息，如创建用户语句中的password信息等，请谨慎使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -                        |
| -e, --echo-queries      | 把所有发送给服务器的查询同时回显到标准输出。 注意： 使用此参数可能会暴露部分SQL语句中的敏感信息，如创建用户语句中的password信息等，请谨慎使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | -                        |
| -E, --echo-hidden       | 回显由\\d和其他反斜杠命令生成的实际查询。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | -                        |
| -k, --with-key=KEY      | 使用gsql对导入的加密文件进行解密。 须知： 对于本身就是shell命令中的关键字符如单引号（'）或双引号（"），Linux shell会检测输入的单引号（'）或双引号（"）是否匹配。如果不匹配，shell认为用户没有输入完毕，会一直等待用户输入，从而不会进入到gsql程序。                                                                                                                                                                                                                                                                                                                                                                                                                                                             | -                        |
| -L, --log-file=FILENAME | 除了正常的输出源之外，把所有查询输出记录到文件FILENAME中。 注意： - 使用此参数可能会暴露部分SQL语句中的敏感信息，如创建用户语句中的password信息等，请谨慎使用。  - 此参数只保留查询结果到相应文件中，主要目标是为了查询结果能够更好更准确地被其他调用者（例如自动化运维脚本）解析；而不是保留gsql运行过程中的相关日志信息。   | 绝对路径或相对路径，且满足操作系统路径命名规则。 |
| -m, --maintenance       | 允许在两阶段事务恢复期间连接集群。 说明： 该选项是一个开发选项，禁止用户使用，只限专业技术人员使用，功能是：使用该选项时，gsql可以连接到备机，用于校验主备机数据的一致性。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | -                        |
| -n, --no-libedit        | 关闭命令行编辑。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | -                        |
| -o, --output=FILENAME   | 将所有查询输出重定向到文件FILENAME。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 绝对路径或相对路径，且满足操作系统路径命名规则。 |
| -q, --quiet             | 安静模式，执行时不会打印出额外信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 缺省时gsql将打印许多其他输出信息。      |
| -s, --single-step       | 单步模式运行。意味着每个查询在发往服务器之前都要提示用户，用这个选项也可以取消执行。此选项主要用于调试脚本。 注意： 使用此参数可能会暴露部分SQL语句中的敏感信息，如创建用户语句中的password信息等，请谨慎使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | -                        |
| -S, --single-line       | 单行运行模式，这时每个命令都将由换行符结束，像分号那样。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -                        |
   
 表3输出格式参数 
| 参数                            | 参数说明                                                                                                                                                                                                                                                                                                                                       | 取值范围       |
|:---|:---|:---|
| -A, --no-align                | 切换为非对齐输出模式。                                                                                                                                                                                                                                                                                                                                | 缺省为对齐输出模式。 |
| -F, --field-separator=STRING  | 设置域分隔符（默认为"\|"）。                                                                                                                                                                                                                                                                                                                           | -          |
| -H, --html                    | 打开HTML格式输出。                                                                                                                                                                                                                                                                                                                                | -          |
| -P, --pset=VAR\[=ARG\]        | 在命令行上以\\pset的风格设置打印选项。 说明： 这里必须用等号而不是空格分隔名称和值。例如，把输出格式设置为LaTeX，可以键入-P format=latex | -          |
| -R, --record-separator=STRING | 设置记录分隔符。                                                                                                                                                                                                                                                                                                                                   | -          |
| -r                            | 开启客户端操作历史记录功能。                                                                                                                                                                                                                                                                                                                             | 缺省为关闭。     |
| -t, --tuples-only             | 只打印行。                                                                                                                                                                                                                                                                                                                                      | -          |
| -T, --table-attr=TEXT         | 允许声明放在HTML table标签里的选项。 使用时请搭配参数"-H,--html"，指定为HTML格式输出。                                                                                                                                                       | -          |
| -x, --expanded                | 打开扩展表格式模式。                                                                                                                                                                                                                                                                                                                                 | -          |
| -z, --field-separator-zero    | 设置非对齐输出模式的域分隔符为空。 使用时请搭配参数"-A, --no-align"，指定为非对齐输出模式。                                                                                                                                                         | -          |
| -0, --record-separator-zero   | 设置非对齐输出模式的记录分隔符为空。 使用时请搭配参数"-A, --no-align"，指定为非对齐输出模式。                                                                                                                                                        | -          |
| -g                            | 显示所有SQL语句和指定文件的分隔符。 说明： -g参数必须和-f参数一起设置。                                           | -          |
   
 表4连接参数 
| 参数                      | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 取值范围                                                                       |
|:---|:---|:---|
| -h, --host=HOSTNAME     | 指定正在运行服务器的主机名或者Unix域套接字的路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 如果省略主机名，gsql将通过Unix域套接字与本地主机的服务器相连，或者在没有Unix域套接字的机器上，通过TCP/IP与localhost连接。 |
| -p, --port=PORT         | 指定数据库服务器的端口号。 可以通过port参数修改默认端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 默认为8000。                                                                   |
| -U, --username=USERNAME | 指定连接数据库的用户。 说明： - 通过该参数指定用户连接数据库时，需要同时提供用户密码用于身份验证。您可以通过交互方式输入密码，或者通过-W参数指定密码。  - 用户名中包含有字符$，需要在字符$前增加转义字符才可成功连接数据库。   | 字符串。默认使用与当前操作系统用户同名的用户。                                                    |
| -W, --password=PASSWORD | 当使用-U参数连接远端数据库时，可通过该选项指定密码。 说明： 用户密码中包含特殊字符"\\"和"\`"时，需要增加转义字符才可成功连接数据库。 如果用户未输入该参数，但是数据库连接需要用户密码，这时将出现交互式输入，请用户输入当前连接的密码。该密码最长长度为999字节，受限于GUC参数password max length的最大值。                                                                                                                                                                                                                                                                               | 符合密码复杂度要求。                                                                 |
   
