linux达梦数据库命令 linux达梦数据库使用

windows连接linux中达梦数据库报string index out of range: -52求助高手在线等使用客户端连接其他服务器(A连接B)上的达梦数据库,我的是报string index out of range:-51,之后排除各种原因,得出两台机器上的达梦数据库版本不一致导致连接报了“string index out of range:-51”,B的版本要高 , 之后在其他机器上安装了高版本的数据库连接成功了 。
其实在使用客户端连接报错时 , 也可以用命令行的方式连接达梦数据库 。
就是不知道你们的是怎么解决的 。
达梦数据库shell脚本怎么获取查询语句结果集方式一
当然是windows电脑安装达梦管理工具,直接把脚本贴进去执行,但避免不了出现误操作
在这里插入图片描述
方式二
使用shell脚本执行sql
1. 先找到达梦数据库安装位置吧
[root@localhost ~]# ss -nlp |grep 5236
tcpLISTEN0128[::]:5236[::]:*users:(("dmserver",pid=103380,fd=4))
[root@localhost ~]# ps -ef|grep dmserver
root85093669930 17:56 pts/600:00:00 grep --color=auto dmserver
dmdba10338018 13:36 ?00:23:18 /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG_JW/dm.ini -noconsole
1
2
3
4
5
1
2
3
4
5
2. 直接在linux上执行shell命令执行sql脚本
2.1 # disql username/password:port
使用这个命令可以进入sql控制台
[root@localhost sql]# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 5.524(ms)
disql V8
SQL
进入SQL后:
直接输入sql语句 , 使用英文分号结尾,回车执行 。
使用“`sql文件路径”,可以执行sql脚本文件,注意前面有一个小撇(esc和tab中间的键)
使用“start sql文件路径”,可以执行sql脚本文件 。
2.2 # disql username/password:port `sql文件位置
使用这个命令可以执行sql脚本
[root@localhost sql]# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236 \`sql/test.sql
[root@localhost sql]#
1
2
1
2
但需注意
这个脚本执行完sql会停留在sql执行行,如需执行完返回到shell命令行,则需要在sql文件结尾添加:exit;。
这个shell语句不能用start执行sql文件,只能使用“`” , 并且前面需要添加转义字符“\” 。
2.3 达梦sql脚本注意事项
目前发现-创建schema语句以及执行过程结尾,都需要添加“/”结束
例如执行以下语句 , 回车执行,一直在输出数字,直到输入“/”,再回车执行,才执行成功 。
[root@localhost sql]# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 6.121(ms)
disql V8
SQL create schema test;
2
3/
操作已执行
已用时间: 26.698(毫秒). 执行号:700604.
SQL
sql脚本示例:
-- 创建schema
CREATE SCHEMA DB_ZFBA_MOBILE;
/
-- 执行过程
begin
if exists(select 1 from DBA_TAB_COLUMNS where OWNER='DB_ZFBA_MOBILE' AND TABLE_NAME='T_ZJTQD') then
EXECUTE immediate 'drop table DB_ZFBA_MOBILE.T_ZJTQD';
end if;
end;
/
create table DB_ZFBA_MOBILE.T_ZJTQD
(
"C_BH"char(32)NOT NULL,-- 主键
"C_BH_AJ"varchar2(32)NULL,-- 案件编号
……
"DT_ZHXGSJ"datetimeNULL,-- 最后修改时间
constraint PK_T_ZJTQD primary key( C_BH )
);
sql文件结尾添加exit;,保证多个sql文件执行不会中断
3. 编写shell脚本
注意:shell脚本一定在linux中编写,windows编写的有些语句执行不成功(目前原因未知)
例如: a=a b=b c=$a$b echo $c 在windows下编写,linux中执行完会输出b

推荐阅读