达梦数据库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 onSet命令用来配置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 scrDisql中,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:/dmdbms7、查看disql中多个结果集查看命令more的帮助信息。
SQL> ? more
MORE
----
切换到下一个结果集。
MORE|MR
SQL> help more
MORE
----
切换到下一个结果集。
MORE|MR
SQL>Disql中,使用help或者?来查看指定命令的帮助信息。
附:Disql命令行常用环境变量
|
变量名称 |
变量配置值说明 |
变量作用 |
|
AUTO[COMMIT] |
<ON|OFF(默认值) > |
设置自动提交 |
|
DEFINE |
<c(默认的变量前缀是&)|ON(默认值)|OFF> |
定义本地变量 |
|
ECHO |
<ON(默认值) |OFF> |
显示脚本中正在执行的 SQL 语句 |
|
FEED[BACK] |
<6(默认值) |n|ON|OFF> |
显示当前 SQL 语句查询或修改的行数 |
|
HEA[DING] |
<ON(默认值) |OFF> |
显示列标题 |
|
LINESHOW |
<ON 默认值|OFF> |
显示行号 |
|
NEWP[AGE] |
<1(默认值) |n|NONE> |
设置页与页之间的分隔 |
|
PAGES[IZE] |
<14(默认值) |n> |
设置一页有多少行数 |
|
TIMING |
<ON(默认值) |OFF> |
显示每个 SQL 语句花费的执行时间 |
|
TIME |
<ON|OFF(默认值) > |
显示系统的当前时间 |
|
VER[IFY] |
<ON(默认值) |OFF> |
列出环境变量被替换前、后的控制命令文本 |
|
LONG |
<800(默认值)|n> |
设置大字段类型显示的最大字节数 |
|
LINESIZE |
<screem_length(默认值,屏幕宽度)|n> |
设置屏幕上一行显示宽度 |
|
SERVEROUT[PUT] |
<ON | OFF(默认值)>[SIZE
<20000(默认值)|n>][FOR[MAT] <WRA[PPED]|
WOR[D_WRAPPED](默认值)| TRU[NCATED]>] |
在块中有打印信息时,是否打印,以及打印的格式 |
|
SCREENBUFSIZE |
<DEFAULT(20K) | n> |
设置屏幕缓冲区的长度 |
|
CHAR_CODE |
<GBK | GB18030| UTF8 | DEFAULT(默认值,操作系统的编码方式)> |
设置 SQL 语句的编码方式 |
|
CURSOR |
<STATIC | FORWARDONLY (默认值)|DEFAULT> |
设置 DPI 语句句柄中游标的类型 |
|
AUTOTRACE |
<OFF(默认值) | NL | INDEX
|ON|TRACE> |
设置执行计划和统计信息的跟踪 |
|
DESCRIBE |
[DEPTH <1(默认值) | n |
ALL>][LINE[NUM] <ON | OFF(默认值)>][INDENT
<ON | OFF(默认值)>] |
设置 DESCRIBE 的显示方式 |
|
TRIMS[POOL] |
<OFF(默认值)| ON> |
设置 spool 文件中每行的结尾空格 |
|
LOBCOMPLETE |
<OFF(默认值)| ON> |
设置大字段数据是否从服务器全部取出 |
|
COLSEP |
[text] |
设置列之间的分割符。缺省为一个空格 |
|
KEEPDATA |
<ON|OFF(默认值)> |
是否为数据对齐进行优化,或者保持数据的原始格式。 ON 不优化, OFF 对齐优化。缺省为OFF |
|
AUTORECONN |
<ON|OFF(默认值)> |
是否自动重新连接。 ON 是,OFF 否。缺省为 OFF |
|
NEST_COMMENT |
<ON|OFF(默认值)> |
是否支持多行注释嵌套。 ON是, OFF 否。 缺省为 OFF |
|
NULL_ASNULL |
<ON|OFF(默认值)> |
在绑定参数输入时, 是否将输入的 NULL 当作数据库的 null 处理。 ON 是,
OFF 否。 缺省为OFF |
|
CMD_EXEC |
<ON(默认值)|OFF> |
是否执行文件中“/” 命令。 ON是, OFF 否。缺省为 ON |
|
CHARDEL |
[text] |
设置字符串的限定符。缺省为一个空格 |
|
FLOAT_SHOW |
<0(默认值)| float_length> |
设置 FLOAT、
DOUBLE 类型按科学计数法显示的分界长度。 默认为 0,代表全部按科学计数法显示 |




