DMSQL使用

达梦DISQL工具使用

 

达梦使用SET命令对当前DISQL的环境变量进行设置,并通过SHOW命令来查看当前系统中环境变量的设置情况。

SET命令用法:

语法如下:

SET <system_variable><value>{ <system_variable><value>} 

    <system_variable>:变量名称,

<value>:属性。

可以同时SET多个环境变量,如:Set heading on timing on。一旦SET之后某个环境变量出错,那么该变量之后的将不再起作用。

1.AUTO

设置当前session是否对修改的数据进行自动提交。

语法如下:

Set  auto[commit] <on|off>

ON:表示打开自动提交,所有执行的SQL语句的事务将自动进行提交。

OFF:表示关闭自动提交,所有执行的SQL语句的事务将由用户显式提交,为默认设置。

2.DEFINE

是否使用DEFINE 定义本地变量。

语法如下:

SET DEFINE<c(默认的变量前缀是&)|ON(默认值)|OFF>

c:表示打开DEFINE功能,同时定义前缀变量符号,c 为定义的前缀符号。

ON:表示打开DEFINE功能,使用默认前缀符号&。

OFF:表示不使用DEFINE功能。

示例如下,打开DEFINE功能,并设置#为变量前缀。

3.ECHO

在用START命令执行一个SQL脚本时,是否显示脚本中正在执行的SQL语句。

SET  ECHO <ON(默认值)|OFF>

4.FEED

是否显示当前SQL语句查询或修改的总行数。

语法如下:

SET FEED[BACK] <6(默认值)|n|ON|OFF>

n:表示结果大于n行时,才显示结果的总行数。

ON:打开显示开关,使用默认值6。

OFF:关闭显示开关。

  

5.HEA[DING]

SET HEA[DING] <ON(默认值)|OFF>

当SET HEADING OFF 时,在每页的上面不显示列标题,而是以空白行代替。

6.LINESHOW

LINESHOW 设置是否显示行号。

语法如下:

SET LINESHOW<ON(默认值)|OFF >;  默认为每行输出打印行号。

7.NEWP[AGE]

设置页与页之间的分隔。

语法如下:

SET NEWP[AGE] <1(默认值)|n|NONE>

当SET NEWPAGE 0 时,在每页的开头有一个换号符。

当SET NEWPAGE n 时,在页和页之间隔着n 个空行。

当SET NEWPAGE NONE 时,在页和页之间没有任何间隔。

8.PAGES[IZE]

设置一页有多少行数。

语法如下:

SET  PAGES[IZE] <14(默认值)|n>

如果设为0,则所有的输出内容为一页并且不显示列标题。默认值为14。

9.TIMING

显示每个SQL语句花费的执行时间。

语法如下:

SET  TIMING<ON(默认值)|OFF>

10.LONG

设置BLOB、CLOB、CHAR、VARCHAR、BINARY、VARBINARY、CLASS等类型一列能显示的最大字节数。

语法如下:

SET  LONG <800(默认值)|n>

11.LINESIZE

设置屏幕上一行显示宽度。

SET  LINESIZE <screen_length(默认值,屏幕宽度)|n>

12.LOBCOMPLETE

设置LOBCOMPLETE,是否从服务器中全部取出大字段数据。

语法如下:

   SET  LOBCOMPLETE <OFF(默认值) | ON>

对于大字段数据,是否从服务器全部取出,防止死锁的发生;与显示长度不同,即便是全部取出,也可以只显示一部分。

13.COLSEP

设置列之间的分割符。

语法如下:

SET  COLSEP [text]

如果text包含空格或标点符号,请用单引号扩起来。默认为一个空格。

14. TIMING

显示每个SQL 语句花费的执行时间。

语法如下:

SET  TIMING<ON(默认值)|OFF>

15.KEEPDATA

是否为数据对齐进行优化,或者保持数据的原始格式。

语法如下:

SET  KEEPDATA < ON | OFF(默认值)>

OFF:表示为保证数据的对齐格式,DIsql 对服务器传回的字符串数据,将其中的换 行符、TAB 都转换为空格。缺省为OFF。

ON:表示关闭对齐优化。

16.SCREENBUFSIZE

设置屏幕缓冲区的长度。用来存储屏幕上显示的内容。

语法如下:

SET  SCREENBUFSIZE<DEFAULT(20K) | n>

SHOW命令查看环境变量

通过使用SHOW 命令,用户就可以快速而方便的了解到DIsql环境的当前环境变量设置。SHOW可以显示一个或多个变量。显示多个变量时中间加空格,当其中某一变量出错之后,后面的仍会继续显示。

语法如下:

SHOW <system_variable>{<system_variable>}

<system_variable>:环境变量。

示例如下,显示HEADING 和TIMING 两个变量:

帮助HELP:

作用:可以帮助用户查看其他命令的具体用法。用户可以看到其他命令系统显示的内容。

语法如下:

HELP  <command>

输出文件SPOOL:

作用:将屏幕显示的内容输出到指定文件

语法如下:

SPOOL {<file> | OFF }

<file>::= <file_path> [CRE[ATE]|REP[LACE]|APP[END]]

<file_path>:指定文件的绝对路径

CRE[ATE]:创建指定的文件,若指定的文件已存在,则报错,默认方式

REP[LACE]:创建指定的文件,若指定的文件已存在,则替换它

APP[END]]:将输出内容追加到指定文件的末尾

OFF:关闭SPOOL 输出

切换到系统命令HOST

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

语法如下:

HOST [<command>]

获取对象结构信息DESCRIBE

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

语法如下:

  DESC[RIBE] <table>|<view>|<proc>|<fun>|<pkg>|<record>|<class>

定义本地变量DEFINE

作用:用来定义一个本地变量的替代变量,然后对该变量赋一个CHAR类型的值;或者输出变量的值和类型。

语法如下:

DEF[INE] [<VARIABLE=text>|< VARIABLE >]

DEF[INE] VARIABLE = text:申明一个变量,如果该变量存在,则重新赋值,否则新生成一个变量,并进行赋值。

DEF[INE] VARIABLE:如果该变量存在,则输出特定VARIABLE的值和类型,否则报错。

DEF[INE]:输出DIsql中所有的变量的值和类型。

该命令定义的替代变量在当前的DIsql环境和/NOLOG环境中均可以起作用。DEFINE定义的变量会保存在环境DIsql环境中,可以在SQL语句中使用。默认的变量前缀是&。

DEFINE变量定义为整型,示例如下:

DEFINE在存储函数中的使用:

定义变量C2为表达式,定义为表达式时必须加括号:

DEFINE变量定义为字符型:

引用变量为函数参数:

DEFINE变量定义为日期类型:

查看执行计划

用EXPLAIN命令来查看查询语句的执行计划

设置异常处理方式WHENEVER

作用:用WHENEVER命令可以设置异常处理方式,继续执行或退出 DIsql。

语法如下:

WHENEVER SQLERROR

CONTINUE [ COMMIT | ROLLBACK | NONE ] |

EXIT [ SUCCESS | FAILURE | WARNING | n | <variable>| : <bindvariable> ]

[ COMMIT | ROLLBACK ]

n 和<variable>的返回值受限于操作系统,在不同平台下,会有所不同

查看下一个结果集MORE

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

显示最近执行的SQL语句或者PL/SQL块信息

  

使用START命令运行脚本:

       先建立保存SQL文件/home/dmdba/test.sql

       内容为:

 

  

使用EDIT命令编辑脚本:

在脚本中使用变量:

DIsql要求传入的参数值个数要与脚本中的变量个数一一对应。比如脚本/dm8/test2.sql中有三个变量&1、&2、&3,则要求传入的参数值也必须是三个。

参数书写要求:

因为参数是原样替换,因此如果SQL语句中字符串要求用单引号,那么定义的参数值也应该包含单引号;另外如果字符串中有特殊字符,需要使用双引号将整个字符串作为一个整体,需要注意的是,如果作为整体的字符串中有双引号作为内容,需要将内容的双引号转义。如果参数值是数字,写法没有特殊要求。如果参数值是字符串,应该用单引号扩起,如果字符串有空格,应该在单引号外面,再加上一个双引号扩起。

4.2 脚本中定义参数值

使用 DEFINE 命令定义变量值,格式:DEFINE 标识符 = 值

如脚本edit /dm8/test4.sql

define n=1

define s=DISQL

select &n from dual;

select '&s' from dual;

4.3 接收用户交互式输入参数值

很多时候,在执行脚本时,我们希望有些信息根据脚本的提示,让用户动态输入。这种情况非常好实现,满足下面两个条件即可。

4.3.1 运行脚本时不带参数

Cat test5.sql

4.3.2 运行时不带参数,需要自己输入值

4.4 使用 PROMPT 命令传递信息

PROMPT 命令会在屏幕上输出一行信息

语法如下:

PROMPT <输出内容>

例如,编写一个查询,要提供用户看到数据的纯文本描述信息。用户就可以使用 PROMPT 命令完成这项工作。将如下脚本存储到名为prompt.sql的文件中:

Cat prompt.sql

prompt 部分ini参数和dminit 建库参数信息(系统值、最小值和最大值);

select top 10 * from v$dm_ini;

更多资讯请上达梦技术社区了解:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值