服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - 数据库技术 - 达梦数据库(三)DISQL命令的使用

达梦数据库(三)DISQL命令的使用

2023-06-25 10:24_老草_ 数据库技术

DIsql 是 DM 数据库的一个命令行交互式客户端工具,用来与 DM 数据库服务器进行交互。DIsql 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录的bin目录下找到该命令。(其实disql就是类似oracle的sqlplus工具)

DIsql 是 DM 数据库的一个命令行交互式客户端工具,用来与 DM 数据库服务器进行交互。DIsql 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录的bin目录下找到该命令。(其实disql就是类似oracle的sqlplus工具)

1. disql连接数据库实例

disql连接数据库共有以下3种方式:

  • 连接默认的DM实例

    disql不指定端口的情况下,默认连接的是5236端口(如果实例并非默认的5236端口,则必须指定端口号)

    达梦数据库(三)DISQL命令的使用

    注意:linux环境下,如果密码中包含特殊字符,需要使用双引号将密码包含进来,同时外层再使用单引号进行转移,具体示例如下:

    $ disql SYSDBA/'"abcd@efgh"'
    $ disql SYSDBA/'"abcd@efgh"'@127.0.0.1:5236
    
  • 使用IP地址和端口连接实例

    达梦数据库(三)DISQL命令的使用
  • 使用service name连接实例

    service nameb必须先在配置文件(/etc/dm_svc.conf)中进行配置,需root用户才能修改:

    [root@biserver ~]# vi /etc/dm_svc.conf
    [root@biserver ~]# cat /etc/dm_svc.conf
    TIME_ZONE=(480)
    LANGUAGE=(cn)
    dmdw=(192.168.10.192:5236)
    

    再用配置好的service name进行登陆(service name大小写不敏感)

    达梦数据库(三)DISQL命令的使用

2. disql环境变量设置

使用 SET 命令可以对当前 DIsql 的环境变量进行设置。常用环境变量设置命令如下:

  • 设置当前 session 是否自动提交

    SET AUTO[COMMIT]  <ON|OFF>
    
  • 是否回显当前SQL语句查询或修改的总行数

    SET FEED[BACK]  <6(默认值)|n|ON|OFF>
    
  • 设置是否显示列标题

    SET HEA[DING]  <ON(默认值)|OFF>
    
  • 设置查询结果是否显示行号

    SET LINESHOW   <ON(默认值)|OFF >
    
  • 设置一页显示有多少行数

    SET PAGES[IZE]  < 14(默认值)|n>
    
  • 设置屏幕一行显示的宽度

    SET LINESIZE  <screen_length(默认值,屏幕宽度)|n>
    
  • 在块中有打印信息时,是否打印,以及打印的格式。设置之后,可以使用DBMS_OUTPUT包打印

    SET SERVEROUT[PUT] <ON | OFF(默认值)> 
    [SIZE <20000(默认值)|n>]
    [FOR[MAT] <WRA[PPED] | WOR[D_WRAPPED](默认值) | TRU[NCATED]>]
    
    ON/OFF:是否打印。
    SIZE:打印的最大长度。
    WORD_WRAPPED:按照单词分隔。
    TRUNCATED:单词被截断。
    FORMAT:按照服务器返回的显示,不做格式化。
    
  • 控制台是否打印 SQLCODE 返回值

    SET SQLCODE  <ON|OFF(默认值)>
    
  • 显示每个SQL语句花费的执行时间

    SET TIMING  <ON(默认值)|OFF>
    
  • SHOW 命令查看环境变量

    SHOW <system_variable>{<system_variable>}
    

3. disql常用命令

  • 帮助命令 help

    SQL> HELP 命令
    SQL> help describe
    
     DESCRIBE
     --------
    
     获取表或视图、存储过程、函数、包、记录、类的结构描述。
    
     用法: DESC[RIBE] [模式名.]对象名
    
  • 输出文件 SPOOL

    SQL> spool /home/dmdba/out.dat
    SQL> select count(*) from sysobjects;
    
    行号     COUNT(*)            
    ---------- --------------------
    1          867
    
    已用时间: 1.507(毫秒). 执行号:58400.
    SQL> spool off
    SQL> exit
    
    [dmdba@biserver ~]$ cat /home/dmdba/out.dat
    SQL> select count(*) from sysobjects;
    
    行号     COUNT(*)            
    ---------- --------------------
    1          867
    
    已用时间: 1.507(毫秒). 执行号:58400.
    SQL> spool off
    [dmdba@biserver ~]$ 
    

    注意:只有SPOOL OFF之后,才能在输出文件中看到输出的内容。

  • 执行操作系统命令

    在disql环境中,通过host命令,可以直接执行操作系统的命令。

    SQL> host df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   50G   28G   23G   56% /
    devtmpfs                 7.8G     0  7.8G    0% /dev
    tmpfs                    7.8G  140K  7.8G    1% /dev/shm
    tmpfs                    7.8G   82M  7.7G    2% /run
    tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
    /dev/sda1                497M  157M  340M   32% /boot
    /dev/mapper/centos-home   46G  213M   46G    1% /home
    tmpfs                    1.6G   44K  1.6G    1% /run/user/0
    /dev/loop0               911M  911M     0  100% /mnt/cdrom
    
    SQL> host ps -ef|grep dm.ini
    dmdba     2013  1909  0 21:43 pts/2    00:00:00 sh -c ps -ef|grep dm.ini
    dmdba     2015  2013  0 21:43 pts/2    00:00:00 grep dm.ini
    dmdba    13615     1  0 6月29 ?       00:07:24 /opt/db/dm/dmdbms/bin/dmserver path=/opt/db/dm/dmdbms/data/DMDB/dm.ini -noconsole
    

4. disql执行sql脚本

  • disql连接语句中直接执行sql语句

    [dmdba@biserver ~]$ disql SYSDBA/SYSDBA \`/home/dmdba/test.sql
    
    服务器[LOCALHOST:5236]:处于普通打开状态
    登录使用时间 : 3.048(ms)
    disql V8
    SQL> select count(*) from sysobjects;
    
    行号     COUNT(*)            
    ---------- --------------------
    1          867
    
    已用时间: 0.580(毫秒). 执行号:58500.
    SQL> 
    
  • disql连接到实例后,有两种方式执行sql脚本(start命令和`字符):

    SQL> `/home/dmdba/test.sql
    SQL> select count(*) from sysobjects;
    
    行号     COUNT(*)            
    ---------- --------------------
    1          867
    
    已用时间: 0.272(毫秒). 执行号:58501.
    SQL> start /home/dmdba/test.sql
    SQL> select count(*) from sysobjects;
    
    行号     COUNT(*)            
    ---------- --------------------
    1          867
    
    已用时间: 0.197(毫秒). 执行号:58502.
    SQL> 
    

总体来说,达梦的disql和oracle的sqlplus,功能上几乎是类似的,命令语法也基本上都是兼容的。如果对oracle的sqlplus已经比较熟悉了,那么使用达梦的disq基本上就没什么问题。

文章在微信公众号”大数据回忆录“也同步发表。公众号专注大数据相关技术的交流与分享!

欢迎大家关注公众号微信。

达梦数据库(三)DISQL命令的使用

到此这篇关于达梦数据库(三)DISQL命令的使用的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/donghb/article/details/125931398

延伸 · 阅读

精彩推荐