概述
dbaccess 是 GBase 8s 数据库的一个命令行客户端工具,用来与 GBase 8s 数据库服务器进行交互。
只要安装了 GBase 8s 数据库,就可以在命令行启动该工具,不需要额外安装。
dbaccess可识别用户输入,将用户输入的 SQL 语句打包发送给 GBase 8s 数据库服务器执行,并接收服务器的执行结果,并按用户的要求将执行结果展示给用户。
dbaccess环境变量
| 环境变量 | 功能 |
|---|---|
| DBFLTMASK | 设置如何显示浮点数的小数位 |
| DBEDIT | 设置使用哪个文本编辑器 |
| DBMONEY | 设置如何显示金额数据 |
| GL_DATE | 设置如何显示日期格式 |
| GL_DATETIME | 设置如何显示日期时间格式 |
| DBACCESS_SHOW_TIME | 设置是否显示SQL的执行时间 |
DBFLTMASK
默认情况下,dbaccess会尽可能的显示浮点数的小数位数。
通过设置该环境变量,控制dbaccess在输出小数信息时,尽量只显示指定位数的小数。
export DBFLTMASK=3
DBEDIT
设置dbaccess中使用的操作系统文本编辑器,默认为vi。
export DBEDIT=vi
DBMONEY
GBase 8s中的money数据类型的显示。
默认情况下,会根据操作系统的本地化设置,显示货币信息。
可以通过该环境变量,设置需要显示的信息。
export DBMONEY="[front][.|,][back]"
GL_DATE
GBase 8s中的date数据类型,默认格式为月/日/年(英文)。
可以设置GL_DATE环境变量,改变DATE数据的显示格式。
export GL_DATE="%iY-%m-%d"
详见日期格式化参数表
| 格式化符 | 说明 |
|---|---|
| %a | 星期的短格式表示 |
| %A | 星期的完整格式表示 |
| %b | 月份的短格式表示 |
| %B | 月份的完整格式表示 |
| %C | 世纪的表示,通常是年值除以100后的整数部分 |
| %d | 天(01-31) |
| %D | 相当于格式:%m/%d/%y |
| %e | 天(1-31) |
| %h | 和%b相同 |
| %H | 小时(00-24) |
| %iy | 两位年(00-99) |
| %IY | 四位年(0000-9999) |
| %m | 月(01-12) |
| %M | 分钟(00-59) |
| %n | 换行符 |
| %S | 秒(00-59) |
| %t | 制表符 |
| %w | 星期的数字表示(0-6) |
| %y | 两位年(00-99),同上%iy |
| %Y | 四位年(0000-9999),同上%IY |
DBACCESS_SHOW_TIME
控制dbaccess在执行SQL时,是否显示SQL的执行时间。
export DBACCESS_SHOW_TIME=1
dbaccess运行模式
一共有四种运行模式:菜单交互、指令交互、管道交互、Bash脚本。
菜单交互
dbaccess提供了一个基于控制台的菜单,用户可以使用方向键或快捷键,选择和执行相应的功能。
直接运行dbaccess命令,即可进入菜单的交互模式。
dbaccess
指令交互
dbaccess提供了一个类似mysql或sqlplus的客户端交互模式,用户输入要执行的指令并回车,dbaccess执行用户输入的指令,并返回执行结果。
也是我们最常使用的模式。
可以通过为dbaccess提供两个参数,进入指令交互模式。
dbaccess <param1> <param2>
- param1:提供数据库名称或-,当该参数为-时,表示未选择默认的数据库,后续可在dbaccess中,使用database <db_name>指定当前数据库。
- param2:固定为-,表示dbaccess的输入为标准输入STDIN。
常用:
dbaccess - -
指定数据库的命令稍有差别,如选择gbasedb:
database gbasedb;
使用Ctrl+d退出命令行。
注意,如果需要上翻历史命令功能,还要其他快捷键,则需要编译安装rlwrap,这点与oracel的sqlplus类似。
安装依赖:
yum install ncurses-devel -y
安装rlwrap:
yum install rlwrap -y
验证安装:
which rlwrap
dbaccess中使用rlwrap,需要环境变量中加入
alias dbaccess='rlwrap dbaccess'
管道交互
dbaccess可以接收STDIN中的内容,做为dbaccess需要执行的指令。
echo "sql_code" | dbaccess <db_name>
例:
echo "select * from t_user;" | dbaccess gbasedb
脚本模式
可以将SQL代码保存到文件中,将文件做为dbaccess的第二个参数,来执行文件中的SQL代码。
dbaccess <db_name> <sql_file>
例:
dbaccess - demo.sql
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/318058.html