dm8_DIsql 常用命令

文章目录

  • 1.帮助命令help
  • 2.输出文件 SPOOL
  • 3.切换到操作系统命令HOST
  • 4.获取对象结构信息 DESCRIBE
  • 5.定义本地变量 DEFINE 和 COLUMN
  • 6.查看执行计划EXPLAIN
  • 7.设置异常处理方式 WHENEVER
  • 8.查看下一个结果集 MORE
  • 9.显示 SQL 语句或块信息 LIST
  • 10.插入大对象数据
  • 11.缓存清理 CLEAR

1.帮助命令help

DIsql的帮助命令help可以为用户提供其它命令的具体用法,包括命令的标题、命令的文本、命令的简写、可以向命令传递的强制参数和可选参数

HELP|? [topic]

topic:命令名称或者命令名称的首字母,查询某一命令用法或者某一字母开头的所有命令用法
如:

SQL> help desc  DESCRIBE--------显示表、视图或同义词的结构信息。用法: DESC[RIBE] [模式名.]对象名SQL> 

2.输出文件 SPOOL

spool命令将屏幕显示的内容输出到指定文件

SPOOL {<file> | OFF }
<file>::= <file_path> [CRE[ATE]|REP[LACE]|APP[END]]

<file_path>:指定文件的绝对路径
CRE[ATE]:创建指定的文件,若指定的文件已存在,则报错,默认方式
REP[LACE]:创建指定的文件,若指定的文件已存在,则替换它
APP[END]]:将输出内容追加到指定文件的末尾
OFF:关闭 SPOOL 输出
注:只有 SPOOL OFF 之后,才能在输出文件中看到输出的内容。

SQL>spool d:\b.sql
SQL>select top 5* from sysobjects;
SQL>spool off

先执行上述语句,然后,查看 d:\b.sql 文件


3.切换到操作系统命令HOST

使用 HOST 命令可以不用退出 DIsql 就能执行操作系统命令。如果单独执行 host,则能够直接从 DIsql 界面切换到操作系统,之后可使用 EXIT 回到 DIsql 界面。

HOST[<command>]#<command>:操作系统命令
SQL> host dir
ac            DmServiceDM        libdmdfs.so           libdmrep.so
acdg              dmshp2st       libdmdpc_nts.so           libdmrlog.so
asmtest           dmst2shp       libdmdpc.so           libdmrman.so
bin           dmwatcher      libdmdpi.so           libdmrps.so
cexe              dpc_new        libdmdrs.so           libdmrs.so
client_ssl        dreplay        libdmdta.so           libdmrtree.so
dclone            jexe           libdmelog.so          libdmsbtex.so
dexp              jobdts         libdmexe.so           libdmsbtree.so
dimp              lib            libdmfil.so           libdmsbt.so
disql             libacdct.so        libdmfldr_comm.so         libdmscp.so
dmamon            libcrypto.so       libdmfldr_dll_java.so     libdmsess.so
dmamon_ctl        libcyt_java.so     libdmfldr.so          libdmshm.so
dmap              libdisql_dll.so    libdmhfs.so           libdmshpldr.so
dmap_br           libdmamon.so       libdmimon_dll_java.so     libdmstg.so
DmAPService       libdmapx.so        libdmimon.so          libdmstrt.so
dmasmcmd          libdmasmapi.so     libdmjmon.so          libdmsys.so
dmasmsvr          libdmasmparse.so   libdmjob.so           libdmtbl.so
dmasmtool         libdmasm.so        libdmjschdl.so        libdmtimer.so
DmAuditMonitorService     libdmasvr.so       libdmjson.so          libdmtrc.so
dmaudtool         libdmaud.so        libdmknl.so           libdmtrv.so

4.获取对象结构信息 DESCRIBE

获取表或视图、存储过程、函数、包、记录、类的结构描述。

DESC[RIBE] <table>|<view>|<proc>|<fun>|<pkg>|<record>|<class> ;

各对象获取的内容略有不同:
 表或视图获取的内容包括列名,列数据类型,列是否可以取空值;
 函数、过程、类获取的内容包括两类:1)存储函数/过程名,类型(函数或过程),函数返回值类型;2)参数名,参数数据类型、参数输入输出属性、参数缺省值;
 包获取的内容分为两类:1)包内存储函数/过程名,类型(函数或过程),函数返回值类型;2)包内参数名,参数数据类型、参数输入输出属性、参数缺省值;
 记录获取的内容为:参数名,参数数据类型,参数是否可以取空值;
如获取表 sysgrants 的结构描述:

SQL> desc sysgrants行号     NAME      TYPE$   NULLABLE
---------- --------- ------- --------
1          URID      INTEGER N
2          OBJID     INTEGER N
3          COLID     INTEGER N
4          PRIVID    INTEGER N
5          GRANTOR   INTEGER N
6          GRANTABLE CHAR(1) N6 rows got已用时间: 162.462(毫秒). 执行号:4.
SQL> 

5.定义本地变量 DEFINE 和 COLUMN

定义本地变量的命令有两个:DEFINE和 COLUMN。

(1)DEFINE
用来定义一个本地变量的替代变量,然后对该变量赋一个 CHAR 类型的值;或者输出变量的值和类型。

DEF[INE] [<VARIABLE=text>|< VARIABLE >]

DEF[INE] VARIABLE = text:申明一个变量,如果该变量存在,则重新赋值,否则新生成一个变量,并进行赋值。
DEF[INE] VARIABLE:如果该变量存在,则输出特定 VARIABLE 的值和类型,否则报错。
DEF[INE]:输出 DIsql 中所有的变量的值和类型。
该命令定义的替代变量在当前的 DIsql 环境和/NOLOG 环境中均可以起作用。
当使用该命令定义变量时,如果变量值包含空格或区分大小写,则用引号引注。另外,
使用“DEFINE 变量名”可以检查变量是否已经定义。
DEFINE 定义的变量会保存在环境 DIsql 环境中,可以在 SQL 语句中使用。默认的变量前缀是&
如:

SQL> def var=666
SQL> select * from dual where id=&var;
原值 1:select * from dual where id=&var;
新值 1:select * from dual where id=666;
已用时间: 0.622(毫秒). 执行号:0.
SQL>

如果 var 没有定义,会提示输入变量的值;没有定义的 var 不会保存在 DIsql 环境
中。
关闭变量替换:

SQL> SET DEFINE OFF

Define 变量与其他字符之间的连接字符是点号’.’。示例如下:

SQL>SET DEFINE ON
SQL>DEF VAR1 = C;
SQL>DEF VAR2 = TEST1;
SQL>DROP TABLE TEST1;
SQL>CREATE TABLE TEST1(C1 INT);
SQL>INSERT INTO TEST1 VALUES(1);
SQL>COMMIT;
SQL>SELECT&VAR1.1 FROM TEST1;
行号 C1
---------- -----------
1 1
已用时间: 0.428(毫秒). 执行号:702.
SQL> select &var2..c1 from test1;
原值 1:select &var2..c1 from test1;
新值 1:select TEST1.c1 from test1;
行号   C1
---------- -----------1     1
已用时间: 0.355(毫秒). 执行号:703.

DEFINE 变量定义为整型

SQL>SET DEFINE ON --打开 DEFINE 变量定义
SQL>DEFINE C1=1 --定义变量 C1 为 1
SQL>SELECT &C1 FROM DUAL;
原值 1:SELECT &C1 FROM DUAL;
新值 1:SELECT 1 FROM DUAL;
行号 1
---------- -----------
1 1
已用时间: 0.477(毫秒). 执行号:704.

–在存储函数中的使用

SQL>CREATE OR REPLACE FUNCTION F1(C1 INT)RETURN INT IS
BEGIN
C1=&C1;
RETURN(C1);
END;
SQL> SELECT F1(0);
行号 F1(0)
---------- -----------
1 1
已用时间: 0.355(毫秒). 执行号:707.
SQL>DEFINE C2=(2+3*4) --定义变量 C2 为表达式,定义为表达式时必须加括号
SQL> SELECT &C2*4 FROM DUAL;
原值 1:SELECT &C2*4 FROM DUAL;
新值 1:SELECT (2+3*4)*4 FROM DUAL;
行号 (2+(3*4))*4
---------- -----------
1 56
已用时间: 0.490(毫秒). 执行号:708.

DEFINE 变量定义为字符型

SQL>SET DEFINE ON --打开 DEFINE 变量定义
SQL>DEFINE C3="'OG'" --定义变量 C3 为'OG'--一种使用 DEFINE 字符串变量的方式
SQL> SELECT &C3 FROM DUAL;
原值 1:SELECT &C3 FROM DUAL;
新值 1:SELECT 'OG' FROM DUAL;
行号 'OG'
---------- ----
1 OG
已用时间: 0.470(毫秒). 执行号:709.
SQL>SELECT LCASE(&C3) FROM DUAL;--引用变量为函数参数
原值 1:SELECT LCASE(&C3) FROM DUAL;
新值 1:SELECT LCASE('OG') FROM DUAL;
行号 LCASE('OG')
---------- -----------
1 og
已用时间: 14.052(毫秒). 执行号:59.
SQL>SET DEFINE ON --打开 DEFINE 变量定义
SQL>DEFINE C4=OG --定义变量 C4 为 OG --另外一种使用 DEFINE 字符串变量的方式
SQL>SELECT '&C4' FROM DUAL;
原值 1:SELECT '&C4' FROM DUAL;
新值 1:SELECT 'OG' FROM DUAL;
行号 'OG'
---------- ----
1 OG
已用时间: 0.173(毫秒). 执行号:711.
SQL>CREATE OR REPLACE FUNCTION F1(&C4 INT)RETURN INT IS
BEGIN
&C4=777;
RETURN(&C4);
END;
/
SQL> SELECT F1(0);
行号 F1(0)
---------- -----------
1 777 -- 返回值 OG=777
已用时间: 0.460(毫秒). 执行号:713.

DEFINE 变量定义为日期类型

SQL>SET DEFINE ON --打开 DEFINE 变量定义
SQL>DEFINE C5="DATE'2015-10-01'"
SQL>SELECT &C5+1 FROM DUAL; --引用变量值加 1 天
原值 1:SELECT &C5+1 FROM DUAL;
新值 1:SELECT DATE'2015-10-01'+1 FROM DUAL;
行号 DATE'2015-10-01'+1
---------- ------------------
1 2015-10-02
已用时间: 28.478(毫秒). 执行号:714.
SQL>SELECT &C5+INTERVAL '01-02' YEAR TO MONTH FROM DUAL; --引用变量值与日期类型作
运算
原值 1:SELECT &C5+INTERVAL '01-02' YEAR TO MONTH FROM DUAL;
新值 1:SELECT DATE'2015-10-01'+INTERVAL '01-02' YEAR TO MONTH FROM DUAL;
行号 DATE'2015-10-01'+INTERVAL+'01-02'YEARTOMONTH
---------- --------------------------------------------
1 2016-12-01
已用时间: 0.482(毫秒). 执行号:715.

(2)COLUMN
定义一个本地列或表达式。

COL[UMN] [<column | expr> [<option>]]
<option> ::= NEW_VALUE variable

COL[UMN]:列举出所有的 COLUMN 变量信息。
COL[UMN] column | expr:列举出某个 column 或 expr,如果存在,则输出信息,否则报错;
COL[UMN] column | expr option:option 目前仅支持 NEW_VALUE,表示该column|expr 的值,同时作为变量存在。但如果该变量未赋值,通过 DEFINE 查询时,不会显示该变量。
查询结果的最后一个值赋给本地变量

SQL> COLUMN CVAR NEW_VALUE DVAR
SQL> SELECT CUSTOMERID CVAR FROM SALES.CUSTOMER;
行号 CVAR
---------- -----------
1     1
2     2
3     3
4     4
5     5
6     6
6 rows got
已用时间: 1.105(毫秒). 执行号:1053.
SQL> DEFINE DVAR
DEFINE DVAR = "6" (INT)

通过如下方式设置将变量 VARIABLE 与列名 column 之间的关联,默认值为 ON,表示已关联

COL[UMN] column <OFF|ON(默认值)>

如:

SQL>COLUMN CVAR OFF

6.查看执行计划EXPLAIN

用 EXPLAIN 命令来查看查询语句的执行计划

EXPLAIN <sql_clause>

<sql_clause>请参考《DM8_SQL 语言使用手册》

SQL>EXPLAIN select count(*) from sysobjects;

7.设置异常处理方式 WHENEVER

用 WHENEVER 命令可以设置异常处理方式,继续执行或退出 DIsql

WHENEVER SQLERROR
CONTINUE [ COMMIT | ROLLBACK | NONE ] |
EXIT [ SUCCESS | FAILURE | WARNING | n | <variable> | : <bindvariable> ]
[ COMMIT | ROLLBACK ]

n 和的返回值受限于操作系统,在不同平台下,会有所不同,例如:
UNIX 系统只用一个字节来存 code,所以返回值的范围只在 0-255 之间

SQL>whenever sqlerror exit 1
SQL>select c1 from dual;
select c1 from dual;
第 1 行附近出现错误[-2111]:无效的列名[C1].
--windows 系统下,输入 echo %ERRORLEVEL%,查看返回值为:1
--linux 系统下,输入 echo $?,查看返回值为:1

8.查看下一个结果集 MORE

当结果集过多,屏幕只能显示一个时,用户可以使用 MORE 命令切换到下一个结果集

more

9.显示 SQL 语句或块信息 LIST

显示最近执行的 SQL 语句或者 PL/SQL 块信息。不显示 DIsql 命令

L[IST]或者;

10.插入大对象数据

当插入语句中包含大对象数据文件时,使用@

@<插入语句>

大数据的插入值格式

@'path'

例如,在 test 表中插入大对象 /home/a.jpg。

create table test(a int,b image);
@insert into testvalues(1,@'/home/a.jpg');

11.缓存清理 CLEAR

清理指定操作本地缓存。

CL[EAR] <option>
<option> ::= [COL[UMNS] | SQL | SCR[EEN] | BUFF[ER]]

COL[UMNS]:清理所有的 COLUMN 变量信息
SQL:清理本地 SQL 缓存信息
SCR[EEN]:清理 DIsql 终端屏幕信息
BUFF[ER]:同 SQL 功能一样,清理本地 SQL 缓存信息
如:

SQL> COLUMN CVAR NEW_VALUE DVAR
SQL> col
COLUMN CVAR ON
NEW_VALUE DVAR
SQL> cl col
columns 已清除
SQL> col
SQL>

以上为DIsql中的常用命令。

更多技术知识请关注达梦云适配中心技术社区
达梦云适配中心

dm8_DIsql 常用命令相关推荐

  1. Kubectl 常用命令, 开发人员常用k8s命令

    Kubectl 常用命令: 什么是常用,我用的,就是常用的

  2. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  3. 客快物流大数据项目(十五):DockeFile常用命令

    目录 DockeFile常用命令 一.FROM 二.​​​​​​​MAINTAINER 三.​​​​​​​RUN

  4. 客快物流大数据项目(九):Docker常用命令

    目录 Docker常用命令 一.帮助命令 二.镜像命令 1.搜索镜像

  5. linux常用命令(转载)

    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短 ...

  6. maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository. ...

  7. linux kvm虚拟化命令,Linux系统下kvm虚拟化(三)日常管理常用命令和配置说明

    根据我们之前创建和一些操作可以知道,KVM虚拟机的管理主要是通过virsh命令对环境下kvm虚拟机进行管理,下边这里整理一些常用的配置说明以及如何进行日常管理维护. 1,查看KVM虚拟机配置文件 KV ...

  8. kubectl常用命令_《蹲坑学kubernetes》之十五:kubectl命令详解

    kubectl用于运行Kubernetes集群命令的管理工具.本章节主要讲了kubectl基本语法和使用方法.在以后的实际工作中,使用越来越多,也会越来越熟悉. 1.kubectl语法 kubectl ...

  9. 计算机网络管理的常用命令,网络管理常用命令图文详解.pdf

    网络工程师必备 – 网络管理常用命令图文详解 网络工程师必备 网络管理常用命令 图文详解 V1.0 V1.0 包含 ping.ipconfig.netstat.nbtstat.tracert. pat ...

最新文章

  1. Python核心编程笔记---- print
  2. CTFshow php特性 web96
  3. Jetson Nano 改成国内源(中科大源)
  4. 好程序员web前端分享CSS3边框
  5. CF1497E1 Square-free division (easy version)
  6. 端午前夕的班级小游戏
  7. fedora下安装python
  8. Mac adb 安装
  9. 《只管去做》-如何做靠谱的年度计划
  10. Wine 开发者指导/架构概览
  11. [渝粤教育] 中国地质大学 思想道德修养与法律基础 复习题
  12. python版本历史_python历史介绍
  13. python实例 输出你好
  14. Atitit.软件开发的几大规则,法则,与原则Principle v5 1.1. 修改历史 2 2. 设计模式六大原则 3 2.1. 设计模式六大原则(1):单一职责原则 3 2.2. 设计模式六
  15. 卡巴斯基7.0离线更新升级包病毒库
  16. 谐振功率放大器的工作原理
  17. Win10隐藏图标怎么恢复
  18. DTW 动态时间规整
  19. 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏
  20. 【MySQL】MySQL表的CRUD操作(基础)

热门文章

  1. Pyqt清空Win回收站
  2. 视频聊天源码,IOS 保存图片、视频到自定义相簿
  3. 【操作系统】进程同步
  4. PID算法入门与C语言代码实现
  5. 蓝海创意云获苏州电信2022年度“云业务优秀合作方”表彰
  6. YII中You are not authorized to perform this action的解决方法
  7. 【Unity】类杀戮尖塔手牌系统实现(初始卡组、随机抽牌、卡牌绘制)
  8. Echart 柱状图,X轴斜着展示
  9. 零基础学习xlwings,看这篇文章就够了
  10. 深圳工业设计行业发展前景怎样?