达梦数据库日常经验总结
本帖最后由 wshy3366 于 2020-12-18 15:34 编辑使用达梦数据库一段时间了,有些日常小细节需要注意,总结如下:
1、求一个平均数select 3/2 from dualoracle得到的是1.5,达梦得到的1,这是因为DM对于长度小于10位的整数,默认为INT类型。DM7当做INT处理,返回INT。
解决方案:
(1)修改dm.ini参数COMPATIBLE_MODE=2,兼容Oracle的NUMBER(详情请参考《DM7系统管理员手册》)
可以通过执行DM函数修改:sp_set_para_value(2,'COMPATIBLE_MODE',2),注意:修改后需要重启数据库才能生效
修改后可以查询相关的视图进行确认。 最主要的视图是:1)V$PARAMETER:显示 ini 参数和 dminit 建库参数的类型及参数值信息(当前会话值、系统值及 dm.ini
文件中的值)。
2)v$dm_ini:所有 ini 参数和 dminit 建库参数信息。 但这个视图查询的内容有点多,DM提供了分类的视图,比如V$DM_ARCH_INI,查询归档的相关参数值。 (2)将INT转为NUMBER select 3.0/2.0 from dual工作中采用的是第一种方法,避免了INT转NUMBER的操作,同时兼容了oracle。
另外还要注意,mybatis中返回变量要类型设置为java.lang.Float,jdbcType设置为DECIMAL就可以正常展示了
<result column="avg_remark_per_case" property="remarkCntPerCase" javaType="java.lang.Float" jdbcType="DECIMAL"/>
(3)如果以上方法还不能解决,尝试将CALC_AS_DECIMAL设置为1并重启数据库
2、全库导出后导入提示该工具不能解析此文件,请使用更高版本的文件
原因解析:说明导入人使用的dimp版本老了
解决方案:数据库导出的库的数据库软件安装目录下的dmdbms/bin文件夹整个打包发给导入的人,然后导入人在本地上使用这个包来导入。这样做的目的是想通过替换bin文件夹来升级dimp工具然后再导入。
另外要注意:导入的模式要保持一致,否则会新创建一个导出时使用的模式,无法导入到要求的模式下
3、查询语句中IS NOT NULL不起作用和1一样,也是设置为兼容模式
4、创建用户后登录总提示密码不对
发现是DM默认密码是大写,登录的时候输入大写就能登录了。
可以通过以下sql查看数据库是否大小写敏感。SELECT SF_GET_CASE_SENSITIVE_FLAG()--1:敏感0:不敏感
5、还有其他一些问题,待续
直接复制粘贴的吗?
排版有些乱,也不知道达梦数据库为何物 学习了,谢谢。。。 没想到这个数据库还存在呢。。 没看懂什么意思{:1_926:}
吾爱破解论坛最帅的人是谁?答案:Hmily
这次验证答案好调皮 sysdba 达梦数据库式微了。。。 我们公司再用达梦 刚接触感谢 了解一下 插入不能返回主键,挺难受的
页:
[1]
2