原因:DM有一个参数ORDER_BY_NULLS_FLAG,默认值是0,0的话就是null始终在最前边,不管正序倒序。
解决思路:改变参数ORDER_BY_NULLS_FLAG的值:
0 表示 NULL 值始终在最前面返回;
1 表示ASC 升序排序时 NULL 值在最后返回,DESC 降序排序时 NULL 值在最前面返回,在参数等于 1的情况下,NULL 值的返回与 ORACLE 保持一致;
2 表示 ASC 升序排序时 NULL 值在最前面返回,DESC 降序排序时 NULL 值在最后返回,在参数等于 2 的情况下,NULL 值的返回与MYSQL 保持一致
1、使用DM管理工具连接数据库,每次关闭工具或重启电脑后,连接信息会全部消失,原因:DM连接分为注册连接和新建连接。新建连接接近于临时连接,关闭或重启,连接信息就会被清理,只有使用注册连接,DM工具才会将连接信息保存。
2、编写sql语句时,DM管理工具不像Navicat Premium工具一样自动联想出表名和字段名,解决方式:
① 点击dm管理工具顶部的窗口——>点击选项
② "查询分析器"——> "编辑器" ——>“SQL助手" ——>勾选 "启用SQL输入助手 "
1、DM不支持if语法,需要用case when 条件判断语句去做替换;
2、DM不支持date_add函数,需要用对应的add_days、add_months等函数做替换;
3、datediff函数在使用中需要增加一个参数’day’,例如:datediff(day,t.gurt_end_date,‘20230921’)
4、DM不支持date_farmat函数
原因: JDBC需要指定数据库名(人家叫访问模式)
解决方法:
String url="jdbc:dm://192.168.15.35:5236?schema=TEST2";
//使用schema指定当前模式名
如果使用阿里Durid连接池,需要配置DriverClassName,否则会报错
解决办法:
1.升级阿里数据源版本
2.增加driverClassName 配置
去掉SQL统计
<property name="connectionProperties" value="druid.stat.mergeSql=false" />
达梦依赖库
在安装包/driver/目录下找相应的JAR包即可
初始化达梦数据库的时候,默认勾选了“字符串比较大小写敏感”,建表的时候,如果表名或列名使用小写字母,那么今后书写SQL语句的时候就要麻烦很多了,必须严格区分单引号、双引号的使用。字符串常量应使用单引号括起,关键字、对象名、字段名、别名等则使用双引号括起。
而且,在大小敏感的数据库下,使用dexp导出数据库、模式正常,但导出小写字母创建的表时,可能会提示“表不存在或者为系统内部对象,请核对后再进行输入”。
原因:项目里有这样一个SQL
select 字段1,2,3...,
(select last_price from trading where trade_date = MIN(t.trade_date)) as price
from trading t where 条件1,2,3...
group by CONCAT(YEAR(t.trade_date), WEEK(t.trade_date))
要查询每周第一天的last_price,执行时报"存在集函数"的错,原来是在where条件里使用了MIN()函数,DM不允许这样使用,原因不明,如有错误欢迎指正。
解决思路:将MIN()函数改成了一个子查询,虽然比以前复杂了很多,查的也慢了,但是好在能执行了。
文章
阅读量
获赞