dm8_DIsql 常用命令
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 常用命令相关推荐
- Kubectl 常用命令, 开发人员常用k8s命令
Kubectl 常用命令: 什么是常用,我用的,就是常用的
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- 客快物流大数据项目(十五):DockeFile常用命令
目录 DockeFile常用命令 一.FROM 二.MAINTAINER 三.RUN
- 客快物流大数据项目(九):Docker常用命令
目录 Docker常用命令 一.帮助命令 二.镜像命令 1.搜索镜像
- linux常用命令(转载)
Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短 ...
- maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository. ...
- linux kvm虚拟化命令,Linux系统下kvm虚拟化(三)日常管理常用命令和配置说明
根据我们之前创建和一些操作可以知道,KVM虚拟机的管理主要是通过virsh命令对环境下kvm虚拟机进行管理,下边这里整理一些常用的配置说明以及如何进行日常管理维护. 1,查看KVM虚拟机配置文件 KV ...
- kubectl常用命令_《蹲坑学kubernetes》之十五:kubectl命令详解
kubectl用于运行Kubernetes集群命令的管理工具.本章节主要讲了kubectl基本语法和使用方法.在以后的实际工作中,使用越来越多,也会越来越熟悉. 1.kubectl语法 kubectl ...
- 计算机网络管理的常用命令,网络管理常用命令图文详解.pdf
网络工程师必备 – 网络管理常用命令图文详解 网络工程师必备 网络管理常用命令 图文详解 V1.0 V1.0 包含 ping.ipconfig.netstat.nbtstat.tracert. pat ...
最新文章
- Python核心编程笔记---- print
- CTFshow php特性 web96
- Jetson Nano 改成国内源(中科大源)
- 好程序员web前端分享CSS3边框
- CF1497E1 Square-free division (easy version)
- 端午前夕的班级小游戏
- fedora下安装python
- Mac adb 安装
- 《只管去做》-如何做靠谱的年度计划
- Wine 开发者指导/架构概览
- [渝粤教育] 中国地质大学 思想道德修养与法律基础 复习题
- python版本历史_python历史介绍
- python实例 输出你好
- Atitit.软件开发的几大规则,法则,与原则Principle v5 1.1. 修改历史	2 2. 设计模式六大原则	3 2.1. 设计模式六大原则(1):单一职责原则	3 2.2. 设计模式六
- 卡巴斯基7.0离线更新升级包病毒库
- 谐振功率放大器的工作原理
- Win10隐藏图标怎么恢复
- DTW 动态时间规整
- 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏
- 【MySQL】MySQL表的CRUD操作(基础)