GBase 8c
运维管理
文章

GBase 8c gsql工具特殊变量

GBase社区管理员
发表于2024-02-04 17:02:4038次浏览0个评论

gsql中所有特殊变量都由大写字母、数字和下划线组成。查看特殊变量的默认值,请使用元命令\echo :varname(例如\echo :DBNAME)。

表 特殊变量设置

变量设置方法变量说明
DBNAME

\set DBNAME dbname

设置当前连接的数据库的名称。每次连接数据库时都会被重新设置。
ECHO

\set ECHO all | queries

  • 如果设置为all,只显示查询信息。等效于使用gsql连接数据库时,指定-a 参数。

  • 如果设置为queries,显示命令行和查询信息。等效于使用gsql连接数据库时,指定-e参数。

ECHO_HIDDEN

\set ECHO_HIDDEN on | off | noexec

当使用元命令查询数据库信息(例如\dg)时,此变量的取值决定了查询的行为:

  • 设置为on,先显示元命令实际调用的查询语句,然后显示查询结果。等效于使用gsql连接数据库时,指定-E参数。

  • 设置为off,则只显示查询结果。

  • 设置为noexec,则只显示查询信息,不执行查询操作。

ENCODING

\set ENCODING encoding_type

设置当前客户端的字符集编码格式。

FETCH_COUNT

\set FETCH_COUNT

variable

  • 如果将该变量值设置为大于0的整数n,则执行SELECT语句时每次从结果集中取n行到缓存并显示到屏幕。

  • 如果不设置此变量,或设置的值小于等于0,则执行SELECT语句时一次性把结果都取到缓存。

说明

设置合理的FETCH_COUNT变量值,将减少内存使用量。一般来说,设为100到1000之间的值比较合理。

HOST

\set HOST hostname

设置已连接的数据库主机名称。

IGNOREEOF

\set IGNOREEOF variable

  • 若设置此变量为整数数值n,则在gsql中输入的前(n-1)次EOF字符(通常是Ctrl+D组合键)都会被忽略,在第n次按EOF字符才能退出gsql程序。

  • 若设置此变量为非数值,则缺省为10。

  • 若删除此变量,则向交互的gsql会话发送一个EOF终止应用。

LASTOID

\set LASTOID oid

最后影响的oid值,即为从一条INSERT或lo_import命令返回的值。此变量只保证在下一条SQL语句的结果显示之前有效。

ON_ERROR_ROLLBACK

\set ON_ERROR_ROLLBACK on | interactive | off

  • 如果设置为on,当一个事务块里的语句产生错误的时候,这个错误将被忽略而事务继续。

  • 如果设置为interactive,这样的错误只是在交互的会话里忽略。

  • 如果设置为off(缺省),事务块里一个语句生成的错误将会回滚整个事务。on_error_rollback-on模式是通过在一个事务块的每个命令前隐含地发出一个SAVEPOINT的方式工作的,在发生错误的时候回滚到该事务块。

ON_ERROR_STOP

\set ON_ERROR_STOP on | off

  • 如果设置为on,则命令执行错误时会立即停止,在交互模式下,gsql会立即返回已执行命令的结果。

  • 如果设置为off(缺省),则在命令执行错误时将会跳过错误继续执行。

PORT

\set PORT port

设置当前连接数据库的端口号。

USER

\set USER username

设置当前用于连接的数据库用户。

VERBOSITY

\set VERBOSITY terse | default | verbose

该变量用于控制错误报告的冗余行。

  • 如果设置为terse,仅返回严重且主要的错误文本以及文本位置。一般适合于单行错误信息。

  • 如果设置为default,则返回严重且主要的错误文本及其位置,还包括详细的错误细节、错误提示。可能会跨越多行。

  • 如果设置为verbose,则返回所有的错误信息。

评论已关闭