前言
本文主要介绍如何使用DM的命令行交互式工具DIsql,以及它作为数据库访问工具所提供的功能。
常用命令
disql登录
进入安装的bin目录登录如下
./disql sysdba/密码@主机:端口号 例如:
./disql sysdba/SYSDBA@localhost:5236
输出文件 SPOOL
将查询结果输出到指定文件。
SQL> spool d:\b.sql #输出文件的绝对路劲
SQL> select 1; #执行的sql语句
行号 1
----- -----
1 1
已用时间: 0.400(毫秒). 执行号:325.
SQL> spool off #关闭spool
切换到操作系统命令 HOST
SQL>HOST DIR
获取对象结构信息 DESCRIBE
SQL> desc sysgrants;
定义本地变量的命令有两个:一是DEFINE;
用来定义一个本地变量的替代变量,然后对该变量赋一个CHAR类型的值;或者输出变量的值和类型
SQL>DEF VAR=666;
SQL>select * from sysobjects where id=&VAR;
SQL>SET DEFINE OFF
定义本地变量的命令有两个:二是COLUMN。定义一个本地列或表达式。
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)
查看执行计划 EXPLAIN
SQL>EXPLAIN select count(*) from sysobjects;
设置异常处理方式wHENEVER
SQL>whenever sqlerror exit 1
SQL>select c1 from dual;
select c1 from dual;
第1 行附近出现错误[-2111]:无效的列名[C1].
–windows系统下,输入echo %ERRORLEVEL%,查看返回值为:1
–linux系统下,输入echo $?,查看返回值为:1
插入大 对象数据
当插入语句中包含大对象数据文件时,使用@。
@<插入语句> @‘path’
例如,在test表中插入大对象e:\DSC_1663.jpg。
create table test(a int,b image);
@insert into test values(1,@'e:\DSC_1663.jpg');
缓存清理 CLEAR
CL[EAR] <选项>
<选项> ::= [COL[UMNS] | SQL | SCR[EEN] | BUFF[ER]]
COL[UMNS]:清理所有的COLUMN变量信息。
SQL:清理本地SQL缓存信息。
SCR[EEN]:清理DIsql终端屏幕信息。
BUFF[ER]:同SQL功能一样,清理本地SQL缓存信息。
脚本
start运行脚
SQL> start e:\a.sql
dIsql中使用EDIT命令来编辑指定的脚本文件。
语法:
ED[IT][<file_name>]
<file_name>:指定待编辑的脚本文件。
示例:
SQL>EDIT D:\test.sql或SQL>edit
变量名是数字
在脚本中通过&n来引用参数,n为1表示为第一个参数,2表示第二个参数,依次类推。如现有表test,其建表和初始化数据语句如下:
create table test(id int) ;
insert into test values(11) ;
insert into test values(12) ;
insert into test values(15) ;
脚本D:\test.sql如下:
select * from test where id = &1;
输入 1的值:
select * from test where id = &2;
输入 2的值:
select * from test where id = &3;
输入 3的值:
脚本中定义参数值
使用DEFINE命令定义变量值,格式:DEFINE标识符 = 值
如脚本D:\test.sql:
define n=1
define s=DIsql
select &n from dual;
select '&s' from dual;
总结
更多信息可前往达梦官网社区
https://eco.dameng.com/docs/zh-cn/ops/standard-dsc-cluster.html