DM8-disql

1. 功能介绍

	disql是DM数据库的一个命令行客户端工具,用来与DM数据库服务器进行交互。disql是dm数据库自带的工具,只要那装了DM数据库,就可以在应用菜单和安装目录中找到。
	disql识别用户输入,将用户输入的SQK语句打包发送到DM数据库服务器执行,并接收服务器的执行结果,并按照用户的要求将执行结果展示给用户。为了更好地与用户交互和展示执行结果,用户也可以在disql中执行disql命令,这些命令由isql工具自身进行处理,不被发送给数据库服务器。
	SQL语句在disql中执行完后都被保存在一个特定的内存区域中,用户可以通过上下键找到这些保存在内存中的SQL语句(某些操作系统可能不支持此操作),并可以进行修改,然后再次执行。disql命令执行完后不保存在内存区域中。

2. 启动disql

2.1 Windows启动

	Windows环境下,有两种启动disql的方式。第一种是启动安装软件后生成的程序菜单,第二种是启动安装目录下自带的disql工具。

2.1.1 程序菜单启动

​ 如果在Windows环境中安装了DM数据库产品,可以在应用菜单中找到SQL交互式查询工具,直接双击即可启动。然后使用LOGINCONN命令登录到执行数据库。

​ 以LOGIN为例,登录到IP地址为10.0.0.21的机器上,用户名和密码为:SYSDBA/SYSDBA,端口号为5236。其它全部回车,采用缺省输入。密码不会回显到屏幕上。

(img-cAdhZNcb-1665451856262)(D:\typora图片\image-20220920165009771.png)]
在这里插入图片描述

​ 也可以全部直接回车,采用缺省输入,登录到本地DM数据库。缺省值参考下文LOGIN命令。

2.1.2 自带disql启动

	DIsql工具位于DM数据库安装目录的BIN子目录下,例如DM数据库的安装目录为D:\dmdbms,则 DIsql 位于 D:\dmdbms\bin\DIsql.exe。双击启动,然后输入用户名、密码,就可登录到本地 DM 数据库实例。密码不会回显到屏幕上。也可以全部直接回车,采用缺省输入,缺省值为 SYSDBA/SYSDBA。

在这里插入图片描述

在这里插入图片描述

如果后续操作想登录到其它DM数据库实例,可以使用LOGIN或CONN命令。

2.1.3 命令行启动

	从命令行启动disql并登录到数据库,在命令行工具中找到disql所在安装目录D:\dmdbms\bin,输入 DIsql 和登录方式后回车。登录方式在下一节详细介绍。

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OKjHqJmD-1665451856265)(D:\typora图片\image-20220920170619475.png)]

DISQL 用法1:disql -h|help  显示disql版本信息和帮助信息

DISQL 用法2:disql [ [<option>] [<logon> | {/NOLOG}] [<start>] ]

 <option> 为: [-L] [-S]

  -L 只尝试登录一次
  -S 隐藏模式,隐藏<SQL>标识符

 <logon> 为::= {<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]
 <connect_identifier>为[<svc_name> | host[:port] | <unixsocket_file>]
 HOST如果是IPv6的地址,需要用[]指明是IPv6地址,例如[fe80::1e6f:65ff:fed1:3724%6]
 INET_TYPE如果是UNIXSOCKET类型,<connect_identifier>需要指明是unixsocket地址,例如:/data/sdb/DAMENG/foo.sock
 <option> ::= #{<extend_option>=<value>[,<extend_option>=<value>]...}
 <os_auth> ::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}

 <extend_option>            <value>
 MPP_TYPE                    GLOBAL/LOCAL
 INET_TYPE                   UDP/TCP/IPC/RDMA/UNIXSOCKET
 SSL_PATH                    <path_str>
 SSL_PWD                     <pwd_str>
 PROXY_CLIENT                <user_str>
 GWDSN                       <GATEWAY DSN>
 UKEY_NAME                   <ukey_name_str>
 UKEY_PIN                    <ukey_pin_str>
 SHAKE_CRYPTO                <shake_crypto_str>
 USER_NEW_PWD                <new_pwd>

 <start> ::= <`sql脚本> | <direct cmd> | <direct sql> 运行disql脚本

 /NOLOG 选项能在未登录DM服务器的情况下启动disql

 <`sql脚本>::= `<filename>[<parameter> { <parameter>}...]"

 <direct sql>::= -e "<SQL语句>[;<SQL语句>]"

 <direct cmd>::= -c "<set 命令>"

2.2 Linux启动

格式:
./disql 用户名/密码@IP:端口

端口和IP可以缺省为默认本地ip和默认端口
[dmdba@dm01 /dm8/bin]$ ./disql sysdba/SYSDBA@10.0.0.21:5236
服务器[10.0.0.21:5236]:处于普通打开状态
登录使用时间 : 2.819(ms)
disql V8
SQL> exit

[dmdba@dm01 /dm8/bin]$ ./disql sysdba/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.937(ms)
disql V8
SQL> exit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jca2NhpS-1665451856265)(D:\typora图片\image-20220922104209233.png)]

2.3 disql参数

参数作用
-E运行DIsql时直接执行后续一条或多条SQL语句,查询结果不显示行号、时间以及影响行数,且不受-C参数控制。
-C运行DISQL时直接执行后续的SET命令。

2.3.1 使用disql执行脚本

格式:(两种格式都可以)

`/dm8/data/DAMENG/b.sql

start /dm8/data/DAMENG/b.sql

[dmdba@dm01 /dm8/bin]$ ./disql SYSDBA/SYSDBA@10.0.0.21:5236

服务器[10.0.0.21:5236]:处于普通打开状态
登录使用时间 : 2.031(ms)
disql V8
SQL> `/dm8/data/DAMENG/b.sql
SQL> select * from ALL_USERS;

行号     USERNAME   USER_ID     CREATED
---------- ---------- ----------- --------------------------
1          SYSDBA     50331649    2022-09-07 11:26:29.596178
2          SYS        50331648    2022-09-07 11:26:29.596178
3          SYSAUDITOR 50331650    2022-09-07 11:26:29.596178
4          SYSSSO     50331651    2022-09-07 11:26:29.596178
5          LLL        50331748    2022-09-15 13:57:02.467525
6          SYSTOM     50331749    2022-09-16 16:41:55.751190

6 rows got

已用时间: 1.301(毫秒). 执行号:1200.
SQL> start /dm8/data/DAMENG/b.sql
SQL> select * from ALL_USERS;

行号     USERNAME   USER_ID     CREATED
---------- ---------- ----------- --------------------------
1          SYSDBA     50331649    2022-09-07 11:26:29.596178
2          SYS        50331648    2022-09-07 11:26:29.596178
3          SYSAUDITOR 50331650    2022-09-07 11:26:29.596178
4          SYSSSO     50331651    2022-09-07 11:26:29.596178
5          LLL        50331748    2022-09-15 13:57:02.467525
6          SYSTOM     50331749    2022-09-16 16:41:55.751190

6 rows got

已用时间: 0.689(毫秒). 执行号:1201.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0oVPisOr-1665451856265)(D:\typora图片\image-20220922134352509.png)]

2.3.2 执行SQL语句

DISQL后面执行一条SQL语句

[dmdba@dm01 /dm8/bin]$ ./disql SYSDBA/SYSDBA@10.0.0.21:5236 -E "SELECT TOP 1 * FROM LLL.TABLE_1;"

服务器[10.0.0.21:5236]:处于普通打开状态
登录使用时间 : 2.541(ms)
disql V8

ID NAME   性别 民族                                             政治面貌 学校       爱好 备注 学号
-- ------ ------ -------------------------------------------------- ------------ ------------ ------ ------ ----------
1  张三 男    汉族                                             群众       北京大学 唱    NULL   110

DISQL后面执行多条SQL语句

[dmdba@dm01 /dm8/bin]$ ./disql SYSDBA/SYSDBA@10.0.0.21:5236 -E "SELECT TOP 1 * FROM LLL.TABLE_1; SELECT TOP 1 * FROM ALL_USERS;"

服务器[10.0.0.21:5236]:处于普通打开状态
登录使用时间 : 2.259(ms)
disql V8

ID NAME   性别 民族                                             政治面貌 学校       爱好 备注 学号
-- ------ ------ -------------------------------------------------- ------------ ------------ ------ ------ ----------
1  张三 男    汉族                                             群众       北京大学 唱    NULL   110

USERNAME USER_ID     CREATED
-------- ----------- --------------------------
SYSDBA   50331649    2022-09-07 11:26:29.596178

2.3.3 执行SET语句

[dmdba@dm01 /dm8/bin]$ ./disql SYSDBA/SYSDBA@10.0.0.21:5236 -C "SET LONG 1000 PAGESIZE 0"

3. 密码中存在特殊符号的书写规范

3.1 不同的操作系统

3.1.1 Windows系统

密码包含转义字符。

例如:用户名为user01,密码为aaaa/aaaa
disql user01/"""aaaa/aaaa"""

密码包含空格。

例如:用户名为uesr01,密码为aaaa aaaa
disql user01/"aaaa aaaa"

密码包含双引号。

例如:用户名为user01,密码为aaaa"aaaa
disql user01/"""aaaa""""aaa"""

3.1.2 Linux系统

密码包含/转移字符

例如:用户名为user01,密码为aaaa/aaaa
./disql user01/'"aaaa/aaaa"'

密码包含双引号

例如:用户名为user01,密码为aaaa"\aaaa
./disql user01/'"aaaa""\aaaa"'

密码包含单引号

例如:用户名为user01,密码为aaaa'aaaa
./disql user01/"aaaa'aaaa"

密码包含单引号+特殊字符

例如:用户名为user01,密码为aaa'$aaaa
./disql user01/"aaa'\$aaaa"

密码包含单引号+双引号

因为含有单双引号,只能将整个密码放入双引号中,同时对双引号使用反斜杠转义。

例如:用户名为user01,密码为aaa"'aaaa
./disql user01/"\"aaa\"\"'aaaa\""

3.2 切换登录

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

3.2.1 LOGIN登录主库建立会话

在这里插入图片描述

LOGOUT命令从登录主库注销会话。

3.2.2 CONN[ECT]/DISCONN[ECT]

在这里插入图片描述

DISCONN[ECT]断开连接

4. DIsql常用命令

4.1 帮助

​ DIsql帮助命令,可以帮助用户查看其它命令的具体用法。用户可以看到其它命令系统显示的内容,概括为:

  • 命令的标题
  • 命令的文本描述
  • 命令的简写(例如,AUTO可以代替AUTOCOMMIT)
  • 可以向命令传递的强制参数和可选参数
SQL> HELP DEFINE

 DEFINE
 ------

 设置变量值,或者显示已定义的变量信息。

 DEF[INE] [variable] | [variable = text]

4.2 输出文件SPOOL

将查询结果输出到指定文件。

语法如下:
SPOOL {<file> | OFF }
<file>::= <file_path> [CRE[ATE]|REP[LACE]|APP[END]][NO_PRINT]
参数含义
<file_path>指定文件的绝对路径
CRE[ATE]创建指定的文件,若指定的文件已存在,则报错。
REP[LACE]创建指定的文件,若文件已存在,则替换。
APP[END]]将输出的内容追加到指定文件的末尾。
NO_PRINT控制台不打印查询结果。
OFF关闭SPOOL输出。

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

[dmdba@dm01 /dm8/bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.041(ms)
disql V8
SQL> spool /dm8/data/DAMENG/a.sql
SQL> select 1;

行号     1
---------- -----------
1          1

已用时间: 1.573(毫秒). 执行号:2200.
SQL> exit
[dmdba@dm01 /dm8/bin]$ cat /dm8/data/DAMENG/a.sql
SQL> select 1;

行号     1
---------- -----------
1          1

已用时间: 1.573(毫秒). 执行号:2200.
SQL> exit

在这里插入图片描述

指定NO_PRINT 控制台不打印查询结果,之江查询结果输出到指定文件。

[dmdba@dm01 /dm8/bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.304(ms)
disql V8
SQL>
SQL> spool /dm8/data/DAMENG/a.sql no_print
SQL> select 2;
SQL> spool off
SQL> exit
[dmdba@dm01 /dm8/bin]$ cat /dm8/data/DAMENG/a.sql
SQL> select 2;

行号     2
---------- -----------
1          2

已用时间: 0.471(毫秒). 执行号:2400.
SQL> spool off

在这里插入图片描述

4.3 切换到操作系统命令

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

[dmdba@dm01 /dm8/bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.399(ms)
disql V8
SQL> host hostname -I
10.0.0.21 172.16.1.21

SQL> host whoami
dmdba

SQL> host
[dmdba@dm01 bin]$ hostname -I
10.0.0.21 172.16.1.21
[dmdba@dm01 bin]$ whoami
dmdba
[dmdba@dm01 bin]$ exit
exit
SQL>

在这里插入图片描述

4.4 获取对象结构信息DESCRIBE

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

  • 表或视图获取的内容包括列名、列数据类型、列是否可以去空值。
  • 函数、过程、类霍去病的内容包括两类:
    • 1)存储函数/过程名,类型(函数或过程),喊出返回值类型;
    • 2)参数名,参数数据类型、参数输入输出属性、参数缺省值。
  • 包获取的内容分为两类:
    • 1)包内存存函数/过程名,类型(函数或过程),函数返回值类型;
    • 2)包内参数名,参数数据类型、参数输入输出属性、参数缺省值。
  • 记录获取的内容为:参数名,参数数据类型,参数是否可以去空值。

4.4.1 获取表sysgrants的结构描述

SQL> desc sysgrants;

行号     NAME      TYPE$   NULLABLE
---------- --------- ------- --------
1          URID      INTEGER N
2          OBJID     INTEGER N
3          COLID     INTEGER N
4          PRIVID    INTEGER N
5          GRANTOR   INTEGER N
6          GRANTABLE CHAR(1) N

6 rows got

已用时间: 14.240(毫秒). 执行号:502.

4.4.2 获取存储过程描述结构

1. 创建一个存储过程
CREATE OR REPLACE PROCEDURE PROC_1(A IN OUT INT) AS
B INT;
BEGIN
A:=A+B;
EXCEPTION
 WHEN OTHERS THEN NULL;
END;

2. 获取存储过程PROC_1的结构描述
SQL> describe PROC_1;

行号     NAME   TYPE$   IO    DEF RT_TYPE
---------- ------ ------- ----- --- -------
1          PROC_1 PROC
2            A    INTEGER INOUT

已用时间: 24.151(毫秒). 执行号:800.

4.4.3 获取包的结构描述

1.创建实例数据库:
CREATE TABLE Person(Id INT IDENTITY, Name VARCHAR(100), City VARCHAR(100));
INSERT INTO Person(Name, City) VALUES('Tom','武汉');
INSERT INTO Person(Name, City) VALUES('Jack','北京');
INSERT INTO Person(Name, City) VALUES('Mary','上海');

2.创建包
CREATE OR REPLACE PACKAGE PersonPackage AS
 E_NoPerson EXCEPTION; 
 PersonCount INT; 
Pcur CURSOR;
 PROCEDURE AddPerson(Pname VARCHAR(100), Pcity varchar(100)); 
 PROCEDURE RemovePerson(Pname VARCHAR(100), Pcity varchar(100)); 
PROCEDURE RemovePerson(Pid INT); 
 FUNCTION GetPersonCount RETURN INT; 
 PROCEDURE PersonList; 
END PersonPackage;

3.创建包主体
CREATE OR REPLACE PACKAGE BODY PersonPackage AS
 PROCEDURE AddPerson(Pname VARCHAR(100), Pcity varchar(100) )AS
 BEGIN
 INSERT INTO Person(Name, City) VALUES(Pname, Pcity); 
 PersonCount = PersonCount + SQL%ROWCOUNT; 
 END AddPerson; 
 PROCEDURE RemovePerson(Pname VARCHAR(100), Pcity varchar(100)) AS
 BEGIN
 DELETE FROM Person WHERE NAME LIKE Pname AND City like Pcity; 
 PersonCount = PersonCount - SQL%ROWCOUNT; 
 END RemovePerson; 
 PROCEDURE RemovePerson(Pid INT) AS
 BEGIN
 DELETE FROM Person WHERE Id = Pid; 
 PersonCount = PersonCount - SQL%ROWCOUNT; 
 END RemovePerson; 
 FUNCTION GetPersonCount RETURN INT AS
BEGIN
 RETURN PersonCount; 
END GetPersonCount; 
 PROCEDURE PersonList AS
DECLARE
V_id INT; 
V_name VARCHAR(100); 
V_city VARCHAR(100); 
BEGIN
IF PersonCount = 0 THEN
 RAISE E_NoPerson; 
END IF; 
 OPEN Pcur FOR SELECT Id, Name, City FROM Person; 
LOOP
 FETCH Pcur INTO V_id,V_name,V_city; 
 EXIT WHEN Pcur%NOTFOUND; 
 PRINT ('No.' + (cast (V_id as varchar(100))) + ' ' + V_name + '来自' + 
V_city ); 
 END LOOP; 
 CLOSE Pcur; 
 END PersonList; 
BEGIN
 SELECT COUNT(*) INTO PersonCount FROM Person; 
END PersonPackage;

4.获取包personpackage的结构描述
SQL> describe PersonPackage;

行号     NAME           TYPE$        IO DEF RT_TYPE
---------- -------------- ------------ -- --- -------
1          ADDPERSON      PROC
2            PNAME        VARCHAR(100) IN
3            PCITY        VARCHAR(100) IN
4          REMOVEPERSON   PROC
5            PNAME        VARCHAR(100) IN
6            PCITY        VARCHAR(100) IN
7          REMOVEPERSON   PROC
8            PID          INTEGER      IN
9          GETPERSONCOUNT FUNC                INTEGER
10         PERSONLIST     PROC

10 rows got

已用时间: 10.673(毫秒). 执行号:801.

4.4.4 使用DEPTH显示列的结构信息

CREATE TYPE ADDRESS AS OBJECT
( STREET VARCHAR2(20),
 CITY VARCHAR2(20)
 );
/
CREATE TYPE ADDRESS1 AS OBJECT
( NO INT,
 SADDR ADDRESS
 );
/

2.创建表EMPINFO
CREATE TABLE EMPINFO
 (LAST_NAME VARCHAR2(30),
 EMPADDR ADDRESS,
 SMADDR ADDRESS1,
 JOB_ID VARCHAR2(20),
 SALARY NUMBER(7,2)
 );
 
3.设置DESCRIBE的显示方式
SQL> SET DESCRIBE DEPTH 1 LINENUM ON INDENT ON;

4.获取EMPINFO的结构描述
SQL> DESC EMPINFO;

行号     ID PID NAME      TYPE$       NULLABLE
---------- -- --- --------- ----------- --------
1          1      LAST_NAME VARCHAR(30) Y
2          2      EMPADDR   ADDRESS     Y
3          3  2     STREET  VARCHAR(20)
4          4  2     CITY    VARCHAR(20)
5          5      SMADDR    ADDRESS1    Y
6          6  5     NO      INTEGER
7          7  5     SADDR   ADDRESS
8          8      JOB_ID    VARCHAR(20) Y
9          9      SALARY    DEC(7, 2)   Y

9 rows got

已用时间: 12.574(毫秒). 执行号:802.

​ 设置DEPTH为1时,表EMPINFO的结构信息只显示至第一层。LINENUM为0时,显示行号ID、PID信息;反之,行号ID、PID信息不显示;INDENT为0时,NAME的显示方式发生了缩进;反之,不发生缩进。

1.重新设置DESCRIBE的显示方式,并获取表EMPINFO的结构描述如下:
SQL> SET DESCRIBE DEPTH 2 LINENUM ON INDENT ON;
SQL> DESC EMPINFO;

行号     ID PID NAME       TYPE$       NULLABLE
---------- -- --- ---------- ----------- --------
1          1      LAST_NAME  VARCHAR(30) Y
2          2      EMPADDR    ADDRESS     Y
3          3  2     STREET   VARCHAR(20)
4          4  2     CITY     VARCHAR(20)
5          5      SMADDR     ADDRESS1    Y
6          6  5     NO       INTEGER
7          7  5     SADDR    ADDRESS
8          8  7       STREET VARCHAR(20)
9          9  7       CITY   VARCHAR(20)
10         10     JOB_ID     VARCHAR(20) Y
11         11     SALARY     DEC(7, 2)   Y

11 rows got

已用时间: 6.100(毫秒). 执行号:803.

在这里插入图片描述

4.5 DEFINE变量

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

1.打开DEFINE变量定义
SQL> SET DEFINE ON;

2.定义变量C1为1
SQL> DEFINE C1=1;

3.查看
SQL> SELECT &C1 FROM DUAL;
原值 1:SELECT &C1 FROM DUAL;
新值 1:SELECT 1 FROM DUAL;

行号     1
---------- -----------
1          1

已用时间: 0.910(毫秒). 执行号:807.

4.在存储函数中使用
SQL> CREATE OR REPLACE FUNCTION F1(C1 INT)RETURN INT IS
BEGIN
C1=&C1;
RETURN(C1);
END;

6.查看
SQL> SELECT F1(0);

行号     F1(0)
---------- -----------
1          1

已用时间: 0.857(毫秒). 执行号:810.

4.5.1 定义为表达式

1.定义变量 C2 为表达式,定义为表达式时必须加括号
SQL> DEFINE C2=(2+3*4);

2.查看
SQL> SELECT &C2*4 FROM DUAL;
原值 1:SELECT &C2*4 FROM DUAL;
新值 1:SELECT (2+3*4)*4 FROM DUAL;

行号     (2+3*4)*4
---------- -----------
1          56

已用时间: 0.473(毫秒). 执行号:811.

4.5.2 定义为字符类型

1.打开 DEFINE 变量定义
SQL> SET DEFINE ON;

2.定义变量 C3 为'OG'--一种使用 DEFINE 字符串变量的方式
SQL> DEFINE C3="'OG'";

3.查看
SQL> SELECT &C3 FROM DUAL;
原值 1:SELECT &C3 FROM DUAL;
新值 1:SELECT 'OG' FROM DUAL;

行号     'OG'
---------- ----
1          OG

已用时间: 1.983(毫秒). 执行号:812.

4.引用变量为函数参数
SQL> SELECT LCASE(&C3) FROM DUAL;
原值 1:SELECT LCASE(&C3) FROM DUAL;
新值 1:SELECT LCASE('OG') FROM DUAL;

行号     LCASE('OG')
---------- -----------
1          og

已用时间: 1.182(毫秒). 执行号:813.

4.5.3 变量定义为日期类型

1.打开 DEFINE 变量定义
SQL>SET DEFINE ON;

SQL> DEFINE C5="DATE'2015-10-01'";

2.引用变量增加一天
SQL> SELECT &C5+1 FROM DUAL;
原值 1:SELECT &C5+1 FROM DUAL;
新值 1:SELECT DATE'2015-10-01'+1 FROM DUAL;

行号     DATE'2015-10-01'+1
---------- ------------------
1          2015-10-02

已用时间: 1.600(毫秒). 执行号:814.

3.引用变量值与日期类型作运算
SQL> SELECT &C5+INTERVAL '01-02' YEAR TO MONTH FROM DUAL;
原值 1:SELECT &C5+INTERVAL '01-02' YEAR TO MONTH FROM DUAL;
新值 1:SELECT DATE'2015-10-01'+INTERVAL '01-02' YEAR TO MONTH FROM DUAL;

行号     DATE'2015-10-01'+INTERVAL+'01-02'YEARTOMONTH
---------- --------------------------------------------
1          2016-12-01

已用时间: 11.638(毫秒). 执行号:815.

4.6 查看执行计划explain

语法:

​ explain <sql_clause>

SQL> explain select count(*) from sysobjects;

1   #NSET2: [1, 1, 0]
2     #PRJT2: [1, 1, 0]; exp_num(1), is_atom(FALSE)
3       #FAGR2: [1, 1, 0]; sfun_num(1),

已用时间: 13.118(毫秒). 执行号:0.

5. 在DIsql中使用脚本

5.1 使用脚本

1.脚本
[dmdba@dm01 /dm8/bin]$ cat /dm8/test.sql
drop table t01;
create table t01(c1 varchar(100), c2 varchar(100));

2.进入disql之后,运行脚本
[dmdba@dm01 /dm8/bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.916(ms)
disql V8
SQL> start /dm8/test.sql
SQL> drop table t01;
操作已执行
已用时间: 10.720(毫秒). 执行号:1200.
SQL> create table t01(c1 varchar(100), c2 varchar(100));
操作已执行
已用时间: 2.523(毫秒). 执行号:1201.

在这里插入图片描述

5.2 编辑脚本EDIT

SQL> edit /dm8/test.sql

详情请参考:https://eco.dameng.com

在CentOS 7上安装DM数据库,您可以按照以下步骤进行操作: 1. 首先,停止DM服务。您可以使用以下命令停止DM服务: ``` service DmService数据库名称 stop ./dmserver /dbdata/DAMENG/dm.ini [1] ``` 2. 接下来,您需要使用systemctl在script下启动DM服务。运行以下命令来执行DM服务的安装: ``` ./dm_service_installer.sh -t dmserver -p test -i /home/dmdba/DAMENG/dm.ini [1] ``` 3. 然后,您需要调用dmserverd以后台方式启动DM服务。可以使用以下命令来执行此操作: ``` #cd /home/dmdba/dm/dmdbms/bin/service_template #vim DmService ``` 在打开的文件中,将`INI_PATH=%INI_PATH%`修改为`INI_PATH=/home/dmdba/dm/dmdbms/bin/dm.ini`,保存并关闭文件。 接下来,回到bin目录并执行以下命令来启动DM服务: ``` cd /home/dmdba/dm/dmdbms/bin/ ./执行 start [1] ``` 4. 为了使dmdba用户在任意目录下都能执行disql,您需要设置环境变量。使用以下命令编辑.dmdba用户的.bashrc文件: ``` vim /home/dmdba/.bashrc ``` 在打开的文件中,添加以下行来设置环境变量并保存文件: ``` export PATH=$PATH:/home/dmdba/dm/dmdbms/bin [1] ``` 5. 最后,根据您的需求,您还可以根据以下配置来调整DM数据库的启动命令: ``` #DMDCR_DB_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmserver path=/opt/dsc/config/dsc0_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini [2] ``` 6. 完成上述步骤后,您可以重新启动服务器,并根据需要开始使用DM数据库。 请注意,上述步骤仅供参考,具体操作可能会因系统设置和需求的不同而有所变化。在进行任何更改之前,请确保您已备份重要数据并充分了解操作的风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值