文章目录
一、实验要求
深入学习DISQL下各种连接数据库的方法和执行SQL、脚本的方法。
二、功能描述
disql 用法1:disql –h|help显示disql版本信息和帮助信息
disql 用法2:disql [ [<option>] [<logon> |{/NOLOG}] [<start>] ]
<option>::=[-L] [-S]
<logon>::={{<username>[/<password>]}|/}[@<connect_identifier>][<logon_option>] [<os_auth>]
<connect_identifier> ::=<svc_name> | {<host>[:<port>]} | <unixsocket_file>
< logon_option >::=<option_no_esc>|<option_esc>
<option_no_esc >::= #{ <extend_option>=<value>{,<extend_option>=<value>} } //此行外层{}是为了封装参数之用,书写时需要保留
<option_esc>::= # "{ <extend_option>=<value>{,<extend_option>=<value>} } " //此行外层"{}"是为了封装参数之用,书写时需要保留
<os_auth>::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
<start>::=<`运行脚本>|<start运行脚本>|<直接执行语句>|<直接执行SET命令>
<`运行脚本>::=`<file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]
<start运行脚本>::=START <file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]
<直接执行语句>::= -E "<SQL语句>{;<SQL语句>}"
<直接执行设置DIsql属性命令>::= -C "<SET命令 | COLUMN命令>"
说明:
-h|help: h 或 help 表示显示 DIsql 版本信息和帮助信息。
[-L] [-S]:-L 表示只尝试登录一次;-S 表示设置 DIsql 界面为隐藏模式,隐藏<SQL> 标识符。
{{<username>[/<password>]} | /}:<username>[/<password>]为用户名和密码。普通登录方式时用户名必写,密码缺省为 SYSDBA。/表示采用操作系统身份验证方式登录,此时无需指定用户名和密码,即使指定也会被忽略。如果 <password>中含有特殊字符,因为特殊字符在操作系统中需要被特殊处理,因此特殊字符书写的时候需要按照要求的格式。
<svc_name>: 服务名。服务名在 dm_svc.conf 中配置。dm_svc.conf 的配置请参考《DM8 系统管理员手册》。使用服务名的好处是第一个 IP 连不通,会自动连接下一个。
<host>[:<port>]: 服务器 IP 地址和端口号。缺省情况下默认为本地服务器和端口号 LOCALHOST:5236。
<unixsocket_file>: 专门用于在 LINUX 系统中,当服务器与客户端之间使用 UNIXSOCKET(UNIX DOMAIN SOCKET - IPC)协议通信时,指定客户端连接的 socket 文件路径。
<logon_option>:为扩展选项,包括 <option_no_esc>和 <option_esc>两种书写方式,两种方式除了书写封装符号#{}和#"{ }"不同,其他一样。<option_no_esc> 适用于 Window 环境和一个 Linux 环境特殊情况(只包含一个扩展选项的情况,例如:#{inet_type=tcp})。<option_esc> 适用于 Windows 和 Linux 环境。<extend_option>=<value>中所有 value 值不能包含空格,不能包含特殊的符号,如引号等。现支持的扩展选项 <extend_option> 请见官方手册。
三、实验步骤
1 disql连接数据库
1.1 操作系统中连接数据库
如使用MPP数据库时,登录到MPP的本地节点查询。
/dm8/bin/disql SYSDBA/SYSDBA@192.168.75.151:5230#"{mpp_type=local}"
1.2 disql中连接数据库
SQL> conn SYSDBA/SYSDBA@localhost:6002
2 disql执行sql
2.1 进入disql后执行
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@localhost:6001
SQL> select * from t1;
2.2 在disql命令后执行
在登录命令后跟-e或者-E,然后再跟上执行的命令
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@localhost:6001 -e "SELECT * FROM T1;"
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@localhost:6001 -E "SELECT * FROM T1;"
3 disql执行脚本
3.1 在disql命令后面
3.1.1 Windows系统
CMD下:
d:\DM>disql SYSDBA/SYSDBA@localhost:5234 `d:\DM\test.sql
PowerShell下:
PS D:\DM\bin> ./disql SYSDBA/SYSDBA@localhost:5234 ``D:\DM\test.sql
3.1.2Linux系统
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@localhost:6002 \`/dm8/test.sql
3.2 登录数据库系统后
3.2.1 `符号方式
SQL> `/dm8/test.sql
3.2.2 start方式
SQL> start /dm8/test.sql
社区地址:https://eco.dameng.com