disql使用
DIsql 是 DM 数据库的一个命令行客户端工具,用来与 DM 数据库服务器进行交互。DIsql 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在应用菜单和安装目录中找到
disql多种连接方式
方法一:disql 用户名/密码@IP地址:端口
或:disql 用户名/密码:端口
或:disql 用户名/密码 这里默认是连5236端口
方法二:disql 用户名/密码@dm_svc.conf中定义的服务名
方法三:交互式
[dmdba@test ~]$ disql
disql V8
用户名:sysdba@127.0.0.1:5234
密码:
服务器[127.0.0.1:5234]:处于普通打开状态
登录使用时间 : 18.096(ms)
SQL>
方法四:disql中切换连接
语法:connect 用户名/密码@IP地址:端口
或:connect 用户名/密码:端口
[dmdba@test instance_script]$ disql test/test:5234
服务器[LOCALHOST:5234]:处于普通打开状态
登录使用时间 : 3.901(ms)
disql V8
SQL> connect sysdba/dmdba123456@172.168.254.110:5235
服务器[172.168.254.110:5235]:处于普通打开状态
登录使用时间 : 2.202(ms)
SQL>
disql执行sql和脚本方法
sql脚本文件类型可以以.sql结尾也可以以.txt结尾。
test.sql文件内容:
[dmdba@test ~]$ cat test.sql
select * from dba_users where rownum <=1;
方法一:外部调用
调用类型 | 系统 | 举例 |
调用脚本 | windows | disql sysdba/dmdba123456@172.168.254.110:5234 `d:\test.sql |
linux | disql sysdba/dmdba123456@127.0.0.1:5234 '`/home/dmdba/test.sql' | |
调用SQL | windows | disql sysdba/dmdba123456@172.168.254.110:5234 -E "select * from dba_users where rownum<=1 disql sysdba/dmdba123456@172.168.254.110:5234 -E "select * from dba_users where rownum<=1” (windows平台结尾双引号删除不影响执行结果) |
linux | disql sysdba/dmdba123456@127.0.0.1:5234 -E "select * from dba_users where rownum <=1" |
方法二:内部调用
调用类型 | 系统 | 举例 |
调用脚本 | windows | windows和linux用法一致,只是脚本路径有区别: SQL>start D:\test.sql #这里start和脚本间有空格 或 SQL>`D:\test.sql #这里`和脚本间没有空格 |
linux | ||
调用SQL | windows | 直接disql登陆客户端执行sql即可 |
linux |
方法三:使用变量
ps:用法类似于shell的变量
位置变量
条目 | 用法 |
位置变量写法 | 在脚本中使用,从数值1开始,&1、&2、&3等 |
传入参数写法 | 不论脚本是内部调用还是外部调用,传入参数都是直接跟在脚本后面,不同值之间用空格隔开 |
参数注意点 | 传入参数会完整带入位置变量,所以有如下3点区分: 数字参数,sql语句中可以直接使用。 字符参数,sql语句中需要用单引号括起来,书写是也要用单引号括起来,单引号会传入位置变量。 参数带空格,参数需要使用双引号括起来,双引号不传入位置变量 |
自定义变量
条目 | 用法 |
自定义变量写法 | 脚本中使用,格式: DEFINE 标识符 = 值 |
举例 | define n=1 define s=DIsql select &n from dual; select '&s' from dual; |
交互式变量
条目 | 用法 |
交互式变量写法 | 直接在sql和脚本中的sql中使用,格式:&未定义的变量名 |
举例 | [dmdba@test ~]$ disql sysdba/dmdba123456@127.0.0.1:5234 服务器[127.0.0.1:5234]:处于普通打开状态 登录使用时间 : 18.399(ms) disql V8 SQL> select &X from dual; 输入 X的值:3 原值 1:select &X from dual; 新值 1:select 3 from dual; 行号 3 ---------- ----------- 1 3 已用时间: 2.147(毫秒). 执行号:5101. |
使用PROMPT传递信息
语法:PROMPT <输出内容> ;
PROMPT关键字开头,具体输出内容在中间,以分号 ; 结尾
使用范围:在脚本和sql中都可以直接使用
使用举例:
SQL> prompt 所有ini参数和dminit建库参数信息(系统值、最小值和最大值);
所有ini参数和dminit建库参数信息(系统值、最小值和最大值)




