达梦数据库disql工具类似于Oracle的sqlplus工具,使用方法上也比较相近。
disql工具用法
./disql help查看disql命令行工具使用
[dmdba@localhost bin]$ ./disql help
disql V8
DISQL 用法1:disql -h|help 显示disql版本信息和帮助信息
DISQL 用法2:disql [ [<option>] [<logon> | {/NOLOG}] [<start>] ]
<option> 为: [-L] [-S]
-L 只尝试登录一次
-S 隐藏模式,隐藏<SQL>标识符
<logon> 为::= {<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]
<connect_identifier>为[<svc_name> | host[:port] | <unixsocket_file>]
HOST如果是IPv6的地址,需要用[]指明是IPv6地址,例如[fe80::1e6f:65ff:fed1:3724%6]
INET_TYPE如果是UNIXSOCKET类型,<connect_identifier>需要指明是unixsocket地址,例如:/data/sdb/DAMENG/foo.sock
<option> ::= #{<extend_option>=<value>[,<extend_option>=<value>]...}
<os_auth> ::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
<extend_option> <value>
MPP_TYPE GLOBAL/LOCAL
INET_TYPE UDP/TCP/IPC/RDMA/UNIXSOCKET
SSL_PATH <path_str>
SSL_PWD <pwd_str>
PROXY_CLIENT <user_str>
<start> ::= <`sql脚本> | <direct cmd> | <direct sql> 运行disql脚本
/NOLOG 选项能在未登录DM服务器的情况下启动disql
<`sql脚本>::= `<filename>[<parameter> { <parameter>}...]"
<direct sql>::= -e "<SQL语句>[;<SQL语句>]"
<direct cmd>::= -c "<set 命令>"
执行脚本时常用选项
-S 选项:disql执行sql脚本时比较常用,用于隐藏disql登录时打印的提示信息。
-L选项:在使用disql进行批量访问数据库时,比较常用。比如使用shell脚本循环遍历去使用disql访问多台数据库时,如果不加-L,当其中一台登录失败后,会直接终止。
disql中的命令
进入disql输入help可以查看disql中支持的命令,使用"help 对应的命令" 可以查看对应命令的使用说明。
[dmdba@localhost bin]$ ./disql
disql V8
用户名:
密码:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.135(ms)
SQL> help
HELP
----
显示打印信息,键入HELP或者 ? .
HELP|? [topic]
APPEND 添加文本到当前行的末尾。
COLUMN 描述指定列的信息。
CONNECT 连接到服务器。
CLEAR 重置或清理指定操作的缓存。
DISCONNECT 提交所有修改到服务器,但不退出DISQL。要退出DISQL使用exit命令。
DESCRIBE 获取表或视图、存储过程、函数、包、记录、类的结构描述。
DEFINE 设置变量值,或者显示已定义的变量信息。
HOST 在不退出DISQL的情况下执行操作系统命令。
EDIT 打开一个文本编辑器,里面包含所有SQL记录。
EXIT 提交或者回滚所有修改,退出DISQL。
MORE 切换到下一个结果集。
LIST 显示最近执行的SQL语句或者PL/SQL块信息,或者使用 ";"命令。不显示DISQL命令。
PROMPT 发送指定的消息或者空行到用户的屏幕。
QUIT 提交或者回滚所有修改,退出DISQL。
SET 设置某个系统环境变量,设置的值会修改当前会话的DISQL系统设置,例如:
- 设置数据显示宽度
- 制定 HTML 格式
- 允许/禁止打印列头
- 设置每一页的行数
SHOW 显示某个DISQL的系统变量,或者当前DISQL的环境变量。
SPOOL 屏幕显示的内容输出到指定文件。
WHENEVER 当一个SQL命令,或者PL/SQL块生成一个错误的时候,执行特定的命令(默认是DISQL退出)
设置disql中的环境变量
通过help set命令查看支持的环境变量参数。目前总共34个环境变量参数。
SQL> HELP SET
SET
---
设置某个系统环境变量,设置的值会修改当前会话的DISQL系统设置,例如:
- 设置数据显示宽度
- 制定 HTML 格式
- 允许/禁止打印列头
- 设置每一页的行数
where system_variable and value represent one of the following clauses:
NEWP[AGE] {1|n|NONE}
AUTOCOMMIT {OFF|ON}
PAGES[IZE] {14|n}
DEFINE {&|c|ON|OFF}
ECHO {OFF|ON}
FEED[BACK] {6|n|ON|OFF}
HEA[DING] {ON|OFF}
TIMING {OFF|ON}
TIME {OFF|ON}
VER[IFY] {ON|OFF}
LONG {800|n}
LINESIZE {screen_length|n}
SERVEROUT[PUT] {ON | OFF} [SIZE {n}] [FOR[MAT] {WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]}]
SCREENBUFSIZE {DEFAULT | n(byte)}
CHAR_CODE {GBK | UTF8 | DEFAULT}
CURSOR {STATIC | FORWARDONLY | DEFAULT}
LINESHOW {ON | OFF}
AUTOTRACE {OFF | NL | INDEX | ON | TRACE}
DESCRIBE [DEPTH {1|n|ALL}] [LINENUM {ON|OFF}] [INDENT {ON|OFF}]
TRIMS[POOL] {ON | OFF}
AUTORECONN {ON | OFF}
LOBCOMPLETE {ON | OFF}
KEEPDATA {ON | OFF}
NEST_COMMENT {ON | OFF}
NULL_ASNULL {ON | OFF}
NULL_SHOW {ON | OFF}
CMD_EXEC {ON | OFF}
COLSEP {| text}
CHARDEL {| text}
FLOAT_SHOW { float_length }
SQLCODE { ON | OFF }
SQL_LINESHOW { ON | OFF }
CONSOLE_PRINT { ON | OFF }
SQLPROMPT { text }
参数说明可以参考《disql手册》3.1章节。
使用glogin.sql配置文件设置环境变量
glogin.sql配置文件路径: D M H O M E / b i n / d i s q l c o n f / g l o g i n . s q l ,其中 DM_HOME/bin/disql_conf/glogin.sql,其中 DMHOME/bin/disqlconf/glogin.sql,其中DM_HOME 为 DM 的安装目录,需要用户在操作系统配置 DM_HOME 环境变量,disql_conf目录和 glogin.sql 文件如果不存在需要用户自行创建。
示例如下:
[dmdba@localhost ~]$ echo $DM_HOME
/home/dmdba/dm46
[dmdba@localhost ~]$ cd $DM_HOME/bin
[dmdba@localhost bin]$ ls -l disql_conf/glogin.sql
-rwxr-xr-x 1 dmdba dinstall 31 3月 21 22:03 disql_conf/glogin.sql
[dmdba@localhost bin]$ cd disql_conf/
[dmdba@localhost disql_conf]$ vim glogin.sql
[dmdba@localhost disql_conf]$ cat glogin.sql
set lineshow off ---不显示行号
set time on ---显示系统当前时间
查看disql中显示情况:
disql执行sql脚本常用环境变量设置
根据实际需求去设置相关disql环境变量
示例:
[dmdba@localhost bin]$ cat /home/dmdba/test.sql
set heading off ---不显示列名
set feedback off ---不显示总行数
set linesize 150
set lineshow off ---不显示行号列
set timing off ---不显示执行时间
set newpage none ---页与页之间不空行(默认空一行)
spool /home/dmdba/t1.txt
select username from dba_users;
spool off
exit;
执行test.sql脚本:
对于Linux环境使用"`"符号时,需要使用反斜杠进行转义。