达梦数据库Disql用法详解之Disql命令行命令用法介绍
1、将disql产生的记录信息输入到指定文件中,如将select sysdate from dual的结果保存到C:\dmdbms\sysdate.sql文件中
SQL> spool C:\dmdbms\sysdate.sql
SQL> select sysdate from dual;
行号 SYSDATE
---------- ---------------------------------------------------------------------
-------------------------------
1 2020-12-14 16:46:28
已用时间: 0.425(毫秒). 执行号:405.
SQL> spool off
SQL>
如果想要把其他查询信息追加到上面C:\dmdbms\sysdate.sql中,可以使用append参数,也可以使用replace参数替换已存在文件,如下追加select table_name from
dba_tables where rownum = 1内容至C:\dmdbms\sysdate.sql中
SQL> spool C:\dmdbms\sysdate.sql append
SQL> select table_name from dba_tables where rownum = 1;
行号 TABLE_NAME
---------- ----------
1 SYSOBJECTS
已用时间: 18.484(毫秒). 执行号:411.
SQL> spool off
SQL>
2、显示disql窗口最近执行的SQL语句或者plsql块
SQL> l
1* select table_name from dba_tables where rownum = 1;
SQL> list
1* select table_name from dba_tables where rownum = 1;
SQL> ;
1* select table_name from dba_tables where rownum = 1;
SQL>
3、环境变量配置命令,如设置disql命令行自动提交,查询结果不显示列标题,并显示每个SQL语句执行花费的执行时间。
SQL> set autocommit on heading off
SQL> set timing on
Set命令用来配置disql命令行环境变量,可以同时设置多个环境变量,也可以单个设置,关于set命令配置的环境变量及其配置值详细说明,见文章末【附:Disql命令行常用环境变量】
4、通过disql调用编辑器编写脚本内容查询当前系统时间,并调用脚本进行执行,要求脚本内容中需要打印提示信息至disql屏幕。
SQL> select sysdate from dual;
行号 SYSDATE
---------- ---------------------------------------------------------------------
-------------------------------
1 2020-12-24 11:00:49
已用时间: 9.627(毫秒). 执行号:4.
SQL> edit
SQL> start C:\dmdbms\data\sysdate.sql
SQL> prompt '查询当前系统时间'
'查询当前系统时间'
SQL> select sysdate from dual;
行号 SYSDATE
---------- ---------------------------------------------------------------------
-------------------------------
1 2020-12-24 11:06:00
已用时间: 0.225(毫秒). 执行号:5.
SQL>
脚本内容:
prompt '查询当前系统时间'
select sysdate from dual;
Disql中可以使用prompt命令将要操作的提示信息打印在disql屏幕上。Disql命令行内部调用脚本有2种方式,使用start命令或者使用·(反引号)来直接调用脚本,当然也可以通过使用disql –E参数直接在命令行外部执行脚本。
5、使用explain命令查看select count(*) from v$threads的执行计划,执行完成之后清理执行信息。
SQL> explain select count(*) from v$threads;
1 #NSET2: [0, 1, 0]
2 #PRJT2: [0, 1, 0]; exp_num(1), is_atom(FALSE)
3 #AAGR2: [0, 1, 0]; grp_num(0), sfun_num(1) slave_empty(0)
4 #DSCN: [0, 46, 0]; SYSINDEXV$THREADS(V$THREADS)
已用时间: 2.782(毫秒). 执行号:0.
SQL>
SQL> clear scr
Disql中,clear命令用来清理disql缓存信息,可选参数有COL[UMNS]、SQL、SCR[EEN]、BUFF[ER],分别清理所有的column变量信息、本地SQL缓存信息、Disql终端屏幕信息、本地SQL缓存信息(跟SQL参数功能一样)。
6、使用host命令执行操作系统命令,如Linux环境下查看当前目录,Windows环境下切换至C:/dmdbms目录。
Linux:
SQL> host pwd
/opt/dmdbms/bin
Windows:
SQL> host cd C:/dmdbms
7、查看disql中多个结果集查看命令more的帮助信息。
SQL> ? more
MORE
----
切换到下一个结果集。
MORE|MR
SQL> help more
MORE
----
切换到下一个结果集。
MORE|MR
SQL>
Disql中,使用help或者?来查看指定命令的帮助信息。
附:Disql命令行常用环境变量
变量名称
变量配置值说明
变量作用
AUTO[COMMIT]
设置自动提交
DEFINE
定义本地变量
ECHO
显示脚本中正在执行的 SQL 语句
FEED[BACK]
<6(默认值) |n|ON|OFF>
显示当前 SQL 语句查询或修改的行数
HEA[DING]
显示列标题
LINESHOW
显示行号
NEWP[AGE]
<1(默认值) |n|NONE>
设置页与页之间的分隔
PAGES[IZE]
<14(默认值) |n>
设置一页有多少行数
TIMING
显示每个 SQL 语句花费的执行时间
TIME
显示系统的当前时间
VER[IFY]
列出环境变量被替换前、后的控制命令文本
LONG
<800(默认值)|n>
设置大字段类型显示的最大字节数
LINESIZE
设置屏幕上一行显示宽度
SERVEROUT[PUT]
[SIZE
<20000(默认值)|n>][FOR[MAT]
WOR[D_WRAPPED](默认值)| TRU[NCATED]>]
在块中有打印信息时,是否打印,以及打印的格式
SCREENBUFSIZE
设置屏幕缓冲区的长度
CHAR_CODE
设置 SQL 语句的编码方式
CURSOR
设置 DPI 语句句柄中游标的类型
AUTOTRACE
|ON|TRACE>
设置执行计划和统计信息的跟踪
DESCRIBE
[DEPTH <1(默认值) | n |
ALL>][LINE[NUM] ][INDENT
]
设置 DESCRIBE 的显示方式
TRIMS[POOL]
设置 spool 文件中每行的结尾空格
LOBCOMPLETE
设置大字段数据是否从服务器全部取出
COLSEP
[text]
设置列之间的分割符。缺省为一个空格
KEEPDATA
是否为数据对齐进行优化,或者保持数据的原始格式。 ON 不优化, OFF 对齐优化。缺省为OFF
AUTORECONN
是否自动重新连接。 ON 是,OFF 否。缺省为 OFF
NEST_COMMENT
是否支持多行注释嵌套。 ON是, OFF 否。 缺省为 OFF
NULL_ASNULL
在绑定参数输入时, 是否将输入的 NULL 当作数据库的 null 处理。 ON 是,
OFF 否。 缺省为OFF
CMD_EXEC
是否执行文件中“/” 命令。 ON是, OFF 否。缺省为 ON
CHARDEL
[text]
设置字符串的限定符。缺省为一个空格
FLOAT_SHOW
<0(默认值)| float_length>
设置 FLOAT、
DOUBLE 类型按科学计数法显示的分界长度。 默认为 0,代表全部按科学计数法显示