签到成功

知道了

CNDBA社区CNDBA社区

Linux平台达梦数据库V7之disql工具使用详解

2020-05-27 14:36 10392 0 原创 DM7
作者: semiter

一 前言

disql是DM 数据库的一个命令行客户端工具,用来与DM数据库服务器进行交互。disql是DM数据库自带的工具,只要安装了DM数据库,就可以在应用菜单和安装目录中找到。其功能类似于oracle的sqlplus。
当然,如果对命令不熟悉的,也可以通过图形界面的DM管理工具进行操作。http://www.cndba.cn/semiter/article/4177

二 disql入门

2.1 启动disql

为了使用 DIsql,必须首先要启动 DIsql。DIsql 工具可以广泛用于各种操作系统,如 WINDOWS、LINUX 等。
启动之后,当出现“SQL>”符号时,用户就可以利用 DM 提供的 SQL 语句和数据库进行交互操作了,需要注意的是,在 DIsql 中 SQL 语句应以分号“;”结束。对于执行语句块,创建触发器,存储过程,函数,包,模式等时需要用“/”结束。
Disql的启动有两种方式:
1.winodws平台
1)通过开始菜单中的SQL交互式查询工具启动;
2)通过$DM_HOME/bin/disql.exe启动(需要配置环境变量PATH)。
2.linux平台
1)通过桌面快捷方式中SQL交互式查询工具启动;
2)通过$DM_HOME/bin/disql启动(需要配置环境变量PATH)。
[dmdba@dm3 IESDB]$ disql sysdba/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 50.277(毫秒)
disql V7.6.0.171-Build(2019.07.02-109059)ENT
SQL>

2.2 切换登录

用户进入 DIsql 界面后,如果想切换到其他 DM 数据库实例。有两种实现方式:一是使用 LOGIN 命令;二是使用 CONN 命令。登录到远程数据库,必须在服务名处使用 IP 地址或网络服务名。

2.2.1 LOGIN /LOGOUT

1.LOGIN登录主库建立会话
直接输入 LOGIN 命令后,屏幕会提示输入登录信息:
SQL> login
服务名:
用户名:
密码:
端口号:
SSL路径:
SSL密码:
MPP类型:
是否读写分离(y/n):
协议类型:
参数说明
服务名:数据库服务名或 IP 地址。LOCALHOST 表示本地服务器。默认为LOCALHOST。
用户名和密码:默认均为 SYSDBA,密码不回显。
端口号:默认为 5236。
SSL 路径和 SSL 密码:用于服务器通信加密,不加密的用户不用设置,缺省为不设置。
UKEY 名称和 UKEY PIN 码:供使用 UKEY 的用户使用,普通用户不用设置,缺省为不使用。
MPP 类型:参见上一节 ,MPP 类型是 MPP 登录属性,此属性的设置对非MPP 系统没有影响。此属性的有效值为 GLOBAL 和 LOCAL,默认为 GLOBAL。
是否读写分离(y/n):默认 n。如果输入 y,会提示:读写分离百分比(0-100)。用户根据需要输入相应的百分比,如果输入的百分比不合法,那就相当于没有设置。
登录成功后会显示登录时间。
SQL> login
服务名:
用户名:
密码:
端口号:
SSL路径:
SSL密码:
MPP类型:
是否读写分离(y/n):
协议类型:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 :7.629(ms)
SQL>

  1. LOGOUT从登录主库注销会话
    LOGOUT 命令从登录主库注销会话。断开连接而不退出 DIsql。
    SQL> logout

    三 disql连接数据库的方式

    DIsql 是 DM 数据库自带的一个命令行客户端工具,用来与 DM 数据库服务器进行交互。
    工具语法如下:
    [dmdba@dm3 IESDB]$ disql -h
    disql V7.6.0.171-Build(2019.07.02-109059)ENT
    DISQL 用法1:disql -h|help 显示disql版本信息和帮助信息
    DISQL 用法2:disql [ [

    3.1 服务端本地连接

    在安装达梦服务端本地,可以直接通过disql进行登录,而无须指定IP与端口号(默认为LOCALHOST:5236):
    [dmdba@dm3 /]$ disql sysdba/SYSDBA
    服务器[LOCALHOST:5236]:处于普通打开状态
    登录使用时间: 8.525(毫秒)
    disql V7.6.0.171-Build(2019.07.02-109059)ENT
    SQL>

    3.2 指定IP与端口号连接

    这种方式类似于oracle数据库的EZCONNECT方式,可以连接任意服务端:
    [dmdba@dm3 /]$ disql sysdba/SYSDBA@192.128.1.3:5236
    服务器[192.128.1.3:5236]:处于普通打开状态
    登录使用时间: 19.260(毫秒)
    disql V7.6.0.171-Build(2019.07.02-109059)ENT
    SQL>

    3.3 网络服务名连接

    网络服务名的详细信息参考官方文档,本节所指的配置文件为dm_svc.conf,该文件在 Windows 操作平台下此文件位于%SystemRoot%/system32 目录,在 Linux 平台下此文件位于/etc 目录。
    官方文档中给出的该文件的配置信息如下:

    以#开头的行表示是注释

    全局配置区

    O2000=(192.168.0.1:5000,192.168.0.2:5236)
    O3000=(192.168.0.1:5236,192.168.0.3:4350)
    TIME_ZONE=(+8:00)
    LOGIN_ENCRYPT=(0)
    DIRECT=(Y)http://www.cndba.cn/semiter/article/4177

    服务配置区

    [O2000]
    TIME_ZONE=(+9:00)
    LOGIN_MODE=(2)
    SWITCH_TIME=(3)
    SWITCH_INTERVAL=(10)
    需要说明的是,如果对 dm_svc.conf 的配置项进行了修改,需要重启客户端程序,修
    改的配置才能生效。
    测试如下:
    [dmdba@dm3 /]$ cat /etc/dm_svc.conf
    TIME_ZONE=(480)
    LANGUAGE=(cn)
    semiter=(192.128.1.3:5236)
    [dmdba@dm3 /]$ disql sysdba/SYSDBA@semiter
    服务器[192.128.1.3:5236]:处于普通打开状态
    登录使用时间: 5.597(毫秒)
    disql V7.6.0.171-Build(2019.07.02-109059)ENT
    SQL>
    这里需要说明几点:
    1.网络服务名不区分大小写;
    [dmdba@dm3 /]$ disql sysdba/SYSDBA@semiter
    服务器[192.128.1.3:5236]:处于普通打开状态
    登录使用时间: 5.597(毫秒)
    disql V7.6.0.171-Build(2019.07.02-109059)ENT
    SQL> exit
    [dmdba@dm3 /]$ disql sysdba/SYSDBA@SEMITER
    服务器[192.128.1.3:5236]:处于普通打开状态
    登录使用时间: 4.616(毫秒)
    disql V7.6.0.171-Build(2019.07.02-109059)ENT
    SQL>
    2.网络服务名后面可以跟端口号
    这一点在非默认端口的情况下需要特别注意,另外对于达梦6的早期版本,不支持指定端口号,也就意味着不支持修改默认端口号。
    3 LANGUAGE参数
    当前数据库服务器使用的语言,会影响帮助信息错误和提示信息。支持的选项为:CN(表示中文)和 EN(表示英文)。可以不指定,若不指定,系统会读取操作系统信息获得语言信息,建议有需要才指定。
    我们之前所执行的查询操作,在disql环境下都是中文显示,这是因为dm_svc.conf文件中LANGUAGE=CN,我们修改为EN测试一下:
    [dmdba@dm3 /]$ cat /etc/dm_svc.conf
    TIME_ZONE=(480)
    LANGUAGE=(en)
    semiter=(192.128.1.3:5236)
    [dmdba@dm3 /]$ disql sysdba/SYSDBA@SEMITER
    Server[192.128.1.3:5236]:mode is normal, state is open
    login used time: 4.114(ms)
    disql V7.6.0.171-Build(2019.07.02-109059)ENT
    SQL>http://www.cndba.cn/semiter/article/4177

    四 disql中的环境变量设置

    使用 SET 命令可以对当前 DIsql 的环境变量进行设置。并通过 SHOW 命令来查看当前系统中环境变量的设置情况。http://www.cndba.cn/semiter/article/4177

    4.1 set命令用法

    SET 命令用于设置 DIsql 系统环境变量。
    语法如下:
    SET { }
    :变量名称,参考官方文档。
    :属性。
    可以同时 SET 多个环境变量,如:Set heading on timing on。一旦 SET 之后某个环境变量出错,那么该变量之后的将不再起作用。
    SQL> help set
    http://www.cndba.cn/semiter/article/4177

    http://www.cndba.cn/semiter/article/4177

    SET

    Sets a system variable to alter the DISQL environment settings

                   for your current session. For example, to:
                   -   set the display width for data
                   -   customize HTML formatting
                   -   enable or disable printing of column headings
                   -   set the number of lines per page
    

    SET system_variable value

    where system_variable and value represent one of the following clauses:

    NEWP[AGE] {1|n|NONE}
    AUTOCOMMIT {OFF|ON}
    PAGES[IZE] {14|n}
    DEFINE {&|c|ON|OFF}
    ECHO {OFF|ON}
    FEED[BACK] {6|n|ON|OFF}
    HEA[DING] {ON|OFF}
    TIMING {OFF|ON}
    TIME {OFF|ON}
    VER[IFY] {ON|OFF}
    LONG {800|n}
    LINESIZE {screen_length|n}
    SERVEROUT[PUT] {ON | OFF} [SIZE {n}] [FOR[MAT] {WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]}]
    SCREENBUFSIZE {DEFAULT | n(byte)}
    CHAR_CODE {GBK | UTF8 | DEFAULT}
    CURSOR {STATIC | FORWARDONLY | DEFAULT}
    LINESHOW {ON | OFF}
    AUTOTRACE {OFF | NL | INDEX | ON | TRACE}
    DESCRIBE [DEPTH {1|n|ALL}] [LINENUM {ON|OFF}] [INDENT {ON|OFF}]
    TRIMS[POOL] {ON | OFF}
    AUTORECONN  {ON | OFF}
    LOBCOMPLETE  {ON | OFF}
    KEEPDATA  {ON | OFF}
    NEST_COMMENT  {ON | OFF}
    NULL_ASNULL  {ON | OFF}
    NULL_SHOW  {ON | OFF}
    CMD_EXEC  {ON | OFF}
    COLSEP  {| text}
    CHARDEL  {| text}
    FLOAT_SHOW  { float_length }
    

    4.2 show命令用法

    通过使用 SHOW 命令,用户就可以快速而方便的了解到 DIsql 环境的当前环境变量设置。
    SHOW 可以显示一个或多个变量。显示多个变量时中间加空格,当其中某一变量出错之后,后面的仍会继续显示。
    语法如下:
    SHOW { }
    :环境变量。
    示例如下,显示 HEADING 和 TIMING 两个变量:
    SQL> SHOW HEADING TIMING
    HEADING ON.
    TIMING ON

    五 disql下常用命令

    5.1 help

    DIsql 帮助命令,可以帮助用户查看其他命令的具体用法。用户可以看到其他命令系统显示的内容,概括为:
     命令的标题
     命令的文本描述
     命令的简写(例如,AUTO 可以代替 AUTOCOMMIT)
     可以向命令传递的强制参数和可选参数
    HELP 显示指定命令的帮助信息。
    语法如下:
    HELP|? [topic]
    topic:命令名称或者命令名称的首字母,查询某一命令用法或者某一字母开头的所有命令用法。
    示例如下 :
    SQL> HELP DEFINE

    DEFINE

    设置变量值,或者显示已定义的变量信息。
    DEF[INE] [variable] | [variable = text]http://www.cndba.cn/semiter/article/4177

    5.2 spool

    将屏幕显示的内容输出到指定文件。
    语法如下:
    SPOOL { | OFF }
    ::= [CRE[ATE]|REP[LACE]|APP[END]]
    :指定文件的绝对路径
    CRE[ATE]:创建指定的文件,若指定的文件已存在,则报错,默认方式
    REP[LACE]:创建指定的文件,若指定的文件已存在,则替换它
    APP[END]]:将输出内容追加到指定文件的末尾
    OFF:关闭 SPOOL 输出
    示例如下:
    SQL>spoold:/b.sqlCREATE
    SQL>select top 5* from sysobjects;
    SQL>spool off
    先执行上述语句,然后,查看 d:/b.sql 文件。
    注意:只有 SPOOL OFF 之后 ,才 能 在输出文件中看到输出的内容。

    5.3 host

    使用 HOST 命令可以不用退出 DIsql 就能执行操作系统命令。如果单独执行 host,则能够直接从 DIsql 界面切换到操作系统,之后可使用 EXIT 回到 DIsql 界面。
    语法如下:
    HOST[]
    :操作系统命令。
    示例如下:
    SQL>HOST DIR

    5.4 DESCRIBE

    获取表或视图、存储过程、函数、包、记录、类的结构描述。
    语法如下:
    DESC[RIBE] http://www.cndba.cn/semiter/article/4177

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

    5.5 explain

    用 EXPLAIN 命令来查看查询语句的执行计划。
    语法如下:
    EXPLAIN
    请参考《DM7_SQL 语言使用手册》。
    示例如下:
    SQL>EXPLAIN select count(*) from sysobjects;

    5.6 more

    当结果集过多,屏幕只能显示一个时,用户可以使用 MORE 命令切换到下一个结果集。
    MORE
    例如,当执行如下语句时,用户想查看更多的结果集,可以使用 MORE 命令。
    begin
    select top 10 from v$dm_ini;
    select top 10
    from sysobjects;
    select * from dual;
    end
    /

    5.7 显示SQL语句或块信息LIST

    显示最近执行的 SQL 语句或者 PL/SQL 块信息。不显示 DIsql 命令。
    LIST 或者 ;http://www.cndba.cn/semiter/article/4177

    五 disql下执行SQL脚本

    在第三章开头已经介绍了disql连接数据库的语法,其中有一个参数start,即可以执行sql脚本:
    运行 DIsql 脚本文件。
    例如,假设a.sql是路径为“c:/”的任意脚本文件DIsql –S SYSDBA/SYSDBA@192.128.1.3:5236 c:/a.sql。 如果在 linux 环境下使用,<start>外需要加上单引号,如:' “‘。
    注意:
    命令 中:<` 运行脚本>在 既可以在 DIsql 启动时使用,也可以在进入 入 DIsql 界面之后使用。而 入 只能在进入 DIsql 界面之后才能使用。
    http://www.cndba.cn/semiter/article/4177

    |

版权声明:本文为博主原创文章,未经博主允许不得转载。

DM7 达梦 disql 脚本

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
semiter

semiter

关注
  • 20
    原创
  • 0
    翻译
  • 0
    转载
  • 2
    评论
  • 访问:79018次
  • 积分:110
  • 等级:初级会员
  • 排名:第28名
精华文章
    热门文章
      Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

      AI QQ群