锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

DM工具:disql初学

时间:2023-07-19 16:07:00 selet传感器b08系列

概述

最近在学习DM 各种数据库工具,包括初始化工具dminit,快速数据装载命令行工具dmfldr,逻辑导出/导入工具dexp/dimp,以及数据库交互工具disql等。首先,在这里分享你的学习成果,并尝试正确disql初学者使用工具进行实践和精炼。

disql 是一个DM 安装数据库服务器交互工具,无需特殊安装DM数据库 然后在安装目录中找到。disql负责将用户提交给数据库服务器SQL并向用户展示其执行结果。disql提供了一系列disql用户可以使用这些命令disql工具处理(不一定是数据库服务器)。 SQL 语句在 DIsql 执行后保存在特定的内存区域,用户可以通过上下键找到这些内存 SQL 语句。DIsql 命令执行后不存储在内存区域。

disql安装目录/工具存录/bin用户可以在程序菜单中直接启动/SQL交互式查询工具也可以用命令线打开,适用于各种操作系统。启动后,您需要登录数据库服务器disql同时登录工具,也可以打开后使用login/connect登录,因为其他博主已经详细介绍过了,不是本文的重点,这里就不赘述了。

SET/SHOW命令

set设置环境变量的命令,show用于检查当前的环境变量。语法如下:

SET <变量名> <值>{ <变量名> <值>}
SHOW <命令>

环境变量

disql以变量名称为:<属性值列出>):

  1. AUTO[COMMIT]:,所有执行的 SQL 是否自动提交语句事务,如果是,则需要用户显式提交。
    SQL> set autocommit on 
  2. DEFINE:<前缀符号|ON(默认前缀符号为&)|OFF>,表示是否使用 DEFINE 定义本地变量,直接给出前缀符号,默认ON,此时前缀符号为&。
    SQL>select $a from country; 输入 a的值:* 

  3. ECHO:,在用 START 执行一个命令 SQL 脚本中执行的脚本是否显示? SQL 语句。

    SQL> set echo on SQL> start /home/cjt/check.sql

  4. FEED[BACK] :,是否显示当前 SQL 语句查询或修改的总行数。开启时,当值大于n时,才显示结果的总行数。
    SQl>set feed 2 SQL>selet * from country; 

  5. HEA[DING]:,表示标题是否显示为OFF以空白行代替
    SQL> set hea on SQL> select * from country; SQL> set hea off SQL> select * from country;
  6. LINESHOW:,表示是否显示行号,类似HEA,不再演示结果。
  7. NEWP[AGE]:,设置页面间隔为n个空行。演示结果和PAGES一同展示。
  8. PAGES[IZE]:,默认14设置一页有多少行。n=0时,所有输出内容为一页,不显示标题。 ISQL_MODE = 1 时,如果 PAGESIZE < NEWPAGE 2.标题不显示。
  9. TIMING:,是否显示每一个SQL语句执行需要时间。
  10. TIME:,表示是否显示系统时间
  11. VER[IFY]:,是否列出了更换环境变量前后的控制命令文本。默认值为 ON。参考DEFINE演示示例中的原值和新值部分被视为OFF不显示时间。
  12. LONG:,用于设置 BLOB、CLOB、CHAR、VARCHAR、BINARY、VARBINARY、CLASS 超过规定长度的最大字节数将被切断。
    SQL> set long 20 SQL> create table txt(c1 text); SQL> insert into txt values('SQL is the most widely used database language.Whether you are an application developer,web application designer,or Microsoft user,a good working knowledge of SQL is an important part of interacting of databases.'); SQL> select * from txt; 
  13. LINESIZE :,在屏幕上设置一行显示宽度。
  14. SERVEROUT[PUT]: [SIZE ] [FOR[MAT]],当块中有打印信息时,是否打印以及打印格式。可在设置后使用 DBMS_OUTPUT 包打印(认为 DBMS_OUTPUT 包已创建)。
    其中,SIZE 表示打印长度,默认;WORD_WRAPPED按单词分隔;TRUNCATED意思是单词被断;FORMAT:根据服务器返回的显示,不格式化。

    首先,我们将打印信息设置为ON,将打印长度设置为20000(默认就是20000,仅仅便于理解),然后将单词分隔(为了体现分隔,将LINESIZE设置较短))
    SQL> set serverout on size 20000 format word_wrapped SQL> set linesize 20 SQL> begin 2   dbms_output.put_line('SQL is the most widely used database language.Whether you are an application developer,web application designer,or Microsoft user,a good working knowledge of SQL is an important part of interacting of databases.'); 3   dbms_output.put_line('DM database is so good'); 4   end; 5   / 

    截断单词:
    SQL> set serverout on size 20000 format TRUNCATED  
    再执行句块:
  15. CHAR_CODE:,用于设置 SQL 句子的编码方法。
  16. SCREENBUFSIZE:,设置屏幕缓冲区的长度。用于存储屏幕上显示的内容。单位为字节,范围为1~50m。
  17. CURSOR:,用于设置 DPI 句柄中游标的类型。
  18. AUTOTRACE:,用于设置执行计划和统计信息的跟踪。
    OFF:默认,不打开AUTOTRACE,正常执行语句。
    NL(nest loop):开启AUTOTRACE,如果执行计划中有嵌套循环,则不执行句子 NL 操作符的内容。
    ON/INDEX:开启AUTOTRACE,不执行语句。如果有表扫描,打印执行计划中表扫描的方法、名称和索引。
    TRACE:常用于查询,语句执行正常,同时打开AUTOTRACE,打印执行计划。
  19. DESCRIBE:[DEPTH<1(默认)|n|ALL>] [LINE[NUM]]
    [INDENT] ,用于设置DESCRIBE 对象结构信息的显示方式。
    DEPTH:结构信息显示的层数,默认为1
    LINENUM:是否显示对象行号,成员显示父亲的行号
    INDENT:当对象的类型是复合类型时,是否通过缩进的方式显示成员信息。
  20. TRIMS[POOL]: ,对于 SPOOL 文件,是否去除输出每行的结尾空格,缺省为 OFF。
  21. LOBCOMPLETE:,是否从服务器中全部取出大字段数据。对于大字段数据,是否从服务器全部取出,防止死的发生;与显示长度不同,即便是全部取出,也可以只显示一部分。
  22. COLSEP:[TEXT],用TEXT设置为列分隔符,如果TEXT包含空格或标点符号,请用单引号扩起来。默认为一个空格。
  23. KEEPDATA[ON|OFF(默认)],是否为数据对齐进行优化,为ON时,DIsql 对服务器传回的字符串数据,将其中的换行符、TAB 都转换为空格,OFF时保持数据的原始格式。
  24. AUTORECONN:,字面意思,设置是否自动重连。
  25. NEST_COMMENT:,设置是否支持多层注释嵌套。disql中注释必须由起始符号“/*”开始,由结 束符号“*/”结束。注释内容还可以嵌套其他的注释,嵌套的注释也同样需由“/*”开始 和“*/”结束。
  26. NULL_ASNULL:,在绑定参数输入时,是否将输入的 NULL 当做数据库的 null 处理。 缺省为 OFF。
  27. CMD_EXEC:,是否执行 sql 脚本文件中“/”命令。
  28. CHARDEL:[text]设置字符串的限定符。
  29. FLOAT_SHOW:,用于设置 FLOAT、DOUBLE 类型数据按科学计数法显示的分界长度,超过长度时用科学计数法显示。
  30. CONSOLE_PRINT:,是否打印查询结果。
  31. SQLCODE:,决定控制台是否打印 SQLCODE 返回值。
    返回1时表示当前SQL语句执行成功,返回0表示反之。
  32. SQL_LINESHOW:,输入多行 SQL 语句时,是否打印 SQL 语句的行号。
  33. NULL_SHOW:,空数据是否显示为 NULL。
  34. SQLPROMPT:,设置 dIsql 命令行的前缀标识。其中可以包含 DEFINE 变量名。默认则 SQL>为前 缀。其中 _USER 和_connect_identifier 两个系统变量代表“系统用户名”和 “IP 地址:端口号”。
  35. ISQL_MODE:<1|0(默认)>,是否兼容 Oracle 结果集打印方式。
  36. WRAP:,是否折行打印结果集。只在ISQL_MODE为1时,该参数才有效。
  37. CTRL_INFO:<0(默认)|1|2|3>,设置 DIsql 的回显打印信息。
    0表示无特殊设置。
    1表示控制-E 不强制关闭行号、执行时间以及执行号等信息的展示。
    2表示控制 DIsql 的回显信息按 5 列打印。具体效果:
        第 1 列:语句的 SQL 类型,如:DELETE、UPDATE、SELECT 等
        第 2 列:语句的执行结果,执行成功则为 0,执行失败则为错误码。
        第 3 列:语句影响行数,DDL 和 PLsql 类型语句的影响行数均默认为 0,仅 DELETE、   UPDATE、SELECT 类型语句存在具体的影响行数。
        第 4 列:语句的执行时间。
        第 5 列:语句执行失败时的错误信息,若语句执行成功,则不打印该列。
    3表示同时进行1与2的设置。
  38. RETRY_CONN<0(默认)|n>,设置自动重连的次数。该环境变量主要用于写自动化脚本,当连接失 败导致 SQL 语句执行失败时,DIsql 尝试自动重新连接数据库,如果在设置次数内连 接成功,则重新执行相应 SQL 语句。
    需要注意的是,该环境变量与 AUTORECONN 并无关系。

 使用配置文件设置环境变量

        DIsql 在连接成功数据库时会自动运行两个配置文件 glogin.sql 和 login.sql。
        glogin.sql 文件中的设置永久生效,该配置文件需要用户自行创建在安装目录下的/bin/disql_conf 路径下,需要用户在操作系统配置 DM_HOME 环境变量,disql_conf 目录需要用户自行创建。
        login.sql 文件为用户自定义配置文件,对其存放路径不做限制。
        glogin.sql 文件和 login.sql 文件的执行顺序如下:
        1. 默认在$DM_HOME/bin/disql_conf 路径下查找 glogin.sql 文件并执行;
        2. 默认在当前工作目录下(不是 DIsql 工具所在的目录)查找 login.sql 文件并执行,若未找到则执行步骤 3;
        3. 判断操作系统是否配置了 DM_SQLPATH 环境变量,如果配置了该变量则在对应路径 下查找 login.sql 文件并执行。
        DIsql 执行上述配置文件时并不会在 DIsql 窗口打印信息,如果没有找到上述配置文件则忽略。

其他命令

HELP

        HELP命令是一个常见于各种工具中的命令,顾名思义,用来查看当前工具下其他各种工具的用法,包括命令的标题、文本描述、所需参数、简写等。

        HELP语法:HELP [命令名或命令名首字母],后者查询某一字母开头的所有命令的用法。

SPOOL

        SPOOL命令用于将查询结果输出到指定文件。

        语法:SPOOL { |OFF }
                   ::=[CRE[ATE]|REP[LACE]|APP[END]][NO_PRINT]
                   :指定文件的绝对路径
                   CRE[ATE]:创建指定的文件,若指定的文件已存在,则报错,默认方式
                   REP[LACE]:创建指定的文件,若指定的文件已存在,则替换它
                   APP[END]]:将输出内容追加到指定文件的末尾
                   NO_PRINT:控制台不打印查询结果                                         
                   OFF:关闭 SPOOL 输出
        注:只有 SPOOL OFF 之后,才能在输出文件中看到完整的输出内容。

HOST

        HOST命令用于在不退出disql的条件下执行系统命令。

        语法:HOST [命令语句]
        其中,命令语句可以缺省,缺省时表示切换到系统命令,切换后即可使用操作系统命令,使用EXIT即可再次回到disql界面。

DESCRIBE

        DESCRIBE命令用于获取表或视图、存储过程、函数、包、记录、类的结构描述。

        语法:DESCRIBE [<模式名>.][对象名]

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

DEFINE/COLUMN

        DEFINE与COLUMN命令都可用于定义本地变量。

        DEFINE用来定义一个本地变量的替代变量,然后对该变量赋一个 CHAR 类型的值;或者输出变 量的值和类型;
        COLUMN用于定义一个本地列或表达式。

        DEFINE语法及解释:

DEF[INE] [|< VARIABLE >]
DEF[INE] VARIABLE = text:申明一个变量,如果该变量存在,则重新赋值,否则新生成一个变量
                          并进行赋值。
DEF[INE] VARIABLE:如果该变量存在,则输出特定 VARIABLE 的值和类型,否则报错。
DEF[INE]:输出 DIsql 中所有的变量的值和类型。

注:命令定义的替代变量在当前的 DIsql 环境和/NOLOG 环境中均可以起作用。
    当使用该命令定义变量时,如果变量值包含空格或区分大小写,则用引号引注。
    使用“DEFINE 变量名”可以检查变量是否已经定义。
    DEFINE 定义的变量会保存在环境 DIsql 环境中,可以在 SQL 语句中使用。默认的变量前缀是&。

         COLUMN语法:

COL[UMN] [ [

EXPLAIN

        EXPLAIN命令用于查看查询语句执行计划,与上文中AUTOTRACE设置为TRACE的情况不同,EXPLAIN命令只生成执行计划,并不实际执行SQL语句,因此产生的执行计划有可能不准。而后者获得的执行计划,是服务器实际执行的计划。

        语法:

EXPLAIN 

WHENEVER

        WHENEVER 命令用于设置异常处理方式,继续执行或退出dIsql。

        语法:

WHENEVER SQLERROR
CONTINUE [ COMMIT | ROLLBACK | NONE ] |
EXIT [ SUCCESS | FAILURE | WARNING | n |  | :  ] 
[ COMMIT | ROLLBACK ]

MORE

        MORE命令用于当结果集过多,屏幕只能显示一个时,用户可以使用命令切换到下一个结果集。

LIST

        LIST用于显示最近执行的 SQL 语句或者 PL/SQL 块信息(不显示 DIsql 命令)。

        语法

L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST]
n ,m :数值 SQL 行号。
*: 当前行号。
LAST: 最后一行。

CLEAR

        CLEAR用于清理本地缓存。

CL[EAR] 

插入大字段

        当插入语句中包含大对象数据文件时,在插入语句前使用@。如:

@insert into T1 values('.jpg',@'D:\picture\pic1.jpg')

EDIT 

        EDIT用以编辑指定的脚本文件。

        用户不必在每次使用数据库的时候都编写常用的 SQL 语句和 PL/SQL 程序块,而是可以将它们保存到称为脚本的文件中。这些脚本专门为反复执行的各种任务而设计。

        使用EDIT编辑脚本文件的语法:

ED[IT][] #若指定的文件不存在,则创建该脚本文件
#如果省略文件,则只会修改缓冲区中的最后一条 SQL 语句。DIsql 自动打开系统缺省的文本编辑器(WINDOWS 下使用 notepad),复制缓冲区中最后一条SQL 语句到文本中,这时用户可以对其中的内容进行编辑。修改完成之前,DIsql 一直处于等待状态。修改完毕,保存文件后,被修改的内容就会被写入缓存区。这对于修改错误命令很方便。

PROMPT

        使用PROMPT <输出内容>命令会在屏幕上输出一行信息,以便在存储脚本中向用户传送信息。如:

PROMPT 部分查询结果如下:
select * from student where age>15;

 关于更多DM数据库信息请咨询DM社区文档: https://eco.dameng.com

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章