Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >达梦数据库适配问题

达梦数据库适配问题

作者头像
彼岸舞
发布于 2020-09-30 02:41:17
发布于 2020-09-30 02:41:17
2.4K00
代码可运行
举报
运行总次数:0
代码可运行

达梦数据库适配采坑记

达梦数据库适配采坑记

问题一

问题描述:

字段内容超长错误:

问题详解:

达梦数据库和Oracle同样,对字段的长度有严格的规范,当然Mysql也是有的,但是默认是不启用的,哪怕超出了,也会自动扩容,但是Oracle和达梦是不会的;

解决方案:

方案一:

对数据库的字段长度进行变更;

方案二:

变更数据类型;

方案三:

约束字段长度,或者进行截取处理

问题二:

问题描述:

语句分析错误,不识别[`]符号

问题详解:

在Mysql中[`]符号是为了防止和Mysql的系统字段冲突,标识这个一个普通字段,但是在达梦数据库中,不识别这个符号;

解决方案:

方案一:

采用MyBatis的拦截器对SQL进行拦截处理;

方案二:

XML中的SQL里面的[`]符号进行删除替换(推荐);

问题三:

问题描述:

不是GROUP by 表达式

问题详解:

因为在Oracle和达梦中查询字段必须在分组中出现,所以报错

解决方案:

方案一:

修改代码,去掉Sql中查询的不是分组的字段,通过代码二次查询实现;

问题四:

问题描述:

问题详解:

解决方案:

方案一:

案例:

问题五:

问题描述:

on duplicate key update语法分析错误

问题详解:

属于Mysql专用语法,在Oracle和达梦中是不支持的

解决方案:

方案一:

使用Merge修改(不推荐)

案例:

修改前: insert into sys_logininfo(info_id,infp_name) values(1,2) on duplicate key update info_id=2,infp_name=’aaa’; 修改后: merge into sys_logininfo t1 using( select 1 info_id,2 infp_name from dual ) t2 on (t1.info_id=t2.info_id) WHEN MATCHED THEN update set info_id=2,infp_name=’aaa’ WHEN NOT MATCHED THEN INSERT VALUES (1,2);

使用详解:

https://blog.csdn.net/jackpk/article/details/50336941

遗留问题:

在使用druid连接池时,报了一个错,但是并不影响

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'
    MERGE INTO sys_logininfo t1 US', expect MERGE, actual IDENTIFIER pos 82, line 1, column 1, token IDENTIFIER MERGE

方案二:

通过代码拆分insertOrUpdate 拆分为insert和update

问题六:

问题面熟:

前端展示空白,后端没有报错

样例:

问题详解:

因为Mysql迁移到了达梦,所以字段全部由小写转换为大写,本身返回Bean是没有问题的,但是一些特殊的SQL返回的是List所以结果Key全部为大写,所以前端调用时为小写,所以无法展示;

解决方案:

方案一:

前端修改代码;

方案二:

定义一个VO,把后端的返回的List,转成定义的VO,返回前端;

问题七:

问题描述:

达梦数据库concat函数不认识[“]符号

问题详解:

在Mysql中无论是[‘][“]都是识别的,但是在达梦中只识别[‘];

解决方案:

方案一:

用[‘]替换项目中的[“];

样例:

修改前: select * from aa where a like CONCAT(“%”,”龙”,”%”); 修改后: select * from aa where a like CONCAT(‘%’,’龙’,’%’);

问题八:

问题描述:

达梦数据库查询列别名时使用[‘’]包裹,是会报错的

问题详解:

达梦数据库在做关键字区分时采用[“”]包裹

解决方案:

方案一:

采用[“”]替换[‘’]

样例:

不带关键字 修改前: select aa as ‘a’ from aaa; 修改后 select aa as a from aaa; 带关键字 修改前: select aa as ‘index’ from aaa; 修改后: select aa as “index” from aaa;

问题九:

问题描述:

使用concat直接包裹字段,会报错,无法解析的表达式

问题详解:

达梦不支持无条件的拼接

解决方案:

方案一:

去掉concat

样例:

修改前: select concat(aaa) as a from aa; 修改后: select aaa as a from aa;

作者:彼岸舞

时间:2020\06\23

内容关于:达梦数据库

本文属于作者原创,未经允许,禁止转发

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
国产达梦数据库与MySQL的区别
由于项目上的需要,把项目实现国产化,把底层的MySQL数据库替换为国产的达梦数据库,花了一周的时间研究了国产的数据库-达梦数据库,它和MySQL有一定的区别,SQL的写法也有一些区别。
Java技术编程
2020/05/25
16.5K1
达梦数据库:第一章:MySQL数据库与达梦数据库的区别
达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM,它具有如下特点:
Java廖志伟
2022/09/28
8.3K0
记一次达梦数据库DMSQL-SQL注入小记
目前国产化越来越普及,平时遇到的达梦数据库也越来越多,因此决定进行下总结。由于本人能力有限,如果文章中有纰漏欢迎指正,也欢迎大家进行交流。
亿人安全
2024/12/19
5550
记一次达梦数据库DMSQL-SQL注入小记
DM达梦数据库字符串函数整理
在数据处理中,字符串函数是进行文本数据清洗、格式化和分析的重要工具。达梦数据库提供了丰富的字符串函数,涵盖了字符串的检索、替换、格式化等多个方面,极大地便利了数据库管理员和开发人员的工作。本文将详细介绍达梦数据库中常用的字符串函数,并通过具体的SQL示例来解析它们的用法。
用户11147438
2024/07/02
3.6K0
达梦数据库性能优化
正文先获取硬件信息获取达梦基本信息vlicens 优先排查 MAX_CPU_NUM查看达梦内存分配状态dual 方式一vsysstat 方式二:正在执行的SQL统计不同账号连接的数量慢SQL排查查看缓冲池命中率内存分配查看死锁杀死 Session查询历史死锁查看当前活跃的会话消耗的内存统计信息(提升很有效)统计信息概述收集统计信息手动收集自动收集查看统计信息更新统计信息删除统计信息
收心
2025/04/08
5320
猿创征文|我这样看国产【达梦】数据库的
这几天正好琢磨国产数据库呢,CSDN又有对应的活动,我简述一下达梦数据库的使用,很方便,给了在线环境,不需要自己进行搭建测试,如果为了公司有去国外技术开发需求可以使用这个,用起来也不复杂,并且国内排名也比较高,很多领导都会选择这个数据库。对于程序员来说,掌握国产的第一名的数据库产品使用方法还是很有必要的。毕竟我们是靠技术吃饭的,多一门技能还是更好的。这几年很多部门都在将国外数据库转成国内数据库,这也是个很大的市场呢。
红目香薰
2022/11/30
6080
猿创征文|我这样看国产【达梦】数据库的
数据库基础,看完这篇就够了!
对于测试同学来说,除了知道测试基础知识外,还需要掌握一些测试基本技能,主要有Linux、数据库、计算机网络等,在此之前我们已经讨论过Linux基础知识以及在实际工作中的应用,可参考往期文章「学会Linux,看完这篇就行了!」。
测试蔡坨坨
2022/12/21
3.2K0
数据库基础,看完这篇就够了!
GZY.EFCore.BulkExtensions 支持达梦数据库的EF Core批量操作库详解
EFCore.BulkExtensions是一个常用的EF core 批量处理数据的库.
GuZhenYin
2024/12/06
2880
达梦数据库_达梦的数据库什么水平
达梦(DM8)数据库由实例和数据库共同组成。 实例由一组正在运行的后台进程及其所fork出的一系列线程和分配内存组成。数据库是由一系列存放在操作系统上的文件组成。 体系结构图大致为:
全栈程序员站长
2022/11/03
1.1K0
DM达梦数据库基本语法整理
在数字化转型的大潮中,数据库作为数据存储的核心,扮演着至关重要的角色。DM达梦数据库,作为一款高性能、高安全性的国产数据库产品,凭借其卓越的性能和丰富的功能,赢得了广泛的市场认可。本文旨在深入解析DM达梦数据库的基础语法,包括数据定义语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)以及SQL查询语言,通过具体案例,让读者能够更直观地理解和掌握。
用户11147438
2024/06/25
2.3K0
国产化达梦数据库数据迁移文档:oracle11g数据库转达梦8数据库实例演示
然后进 DDL 里把生成的语句复制一下,拿出来执行一下。 稍作修改: user 后面跟的用户名包裹的引号去掉,第二行密码限制次数的删掉。
小蓝枣
2021/12/01
2K0
国产化达梦数据库数据迁移文档:oracle11g数据库转达梦8数据库实例演示
常用数据库 SQL 命令详解(下)
本文主要以 Mysql 数据库为基础,对常用 SQL 语句进行一次深度总结,由于篇幅较长,难免会有些遗漏的地方,欢迎网友留言指出!
Java极客技术
2022/12/04
1.1K0
【赵渝强老师】达梦数据库的数据库对象
达梦数据库中包含各种数据库对象,主要分为两大类型:基本数据库对象和复杂数据库对象。下面分别进行介绍。
赵渝强老师
2025/03/23
1800
【赵渝强老师】达梦数据库的数据库对象
【数据库系列】你想要的sql全都有plus
有一天突然发现【数据库】你想要的sql全都有 阅读量破300了,非常高兴,当天流量不断飙升,也不断有人关注,然后就是是一个幸运的开始。
用户9913368
2022/08/13
5110
【数据库系列】你想要的sql全都有plus
挨踢小子MySQL笔记体现SQL功底12道
1、复制数据库表数据操作 1、如果是整个表复制表达如下: insert into table1 select * from table2 2、如果是有选择性的复制数据表达如下: insert into table1(column1,column2,column3...) select column1,column2,colunm3...from table2 3、一个数据库中的表中的数据复制到另一个数据库中的一个表,使用方法如下: insert into 数据库A.dbo.table1(col
挨踢小子部落阁
2023/03/16
2040
挨踢小子MySQL笔记体现SQL功底12道
达梦数据库分区表的使用
达梦数据库分区表主要包括范围分区、哈希分区和列表分区三种方式, 企业可以使用合适的分区方法,如日期(范围)、区域(列表),对大量数据进行分区。由于达梦数据库划分的分区是相互独立且可以存储于不同的存储介质上的,完全可满足企业高可用性、 均衡IO、降低维护成本、提高查询性能的要求。今天我们主要讨论水平分区
全栈程序员站长
2022/09/01
2K0
挑战进阶级SQL,你能理解几个
1、复制数据库表数据操作 //微信公众号:关注挨踢小子 1、如果是整个表复制表达如下: insert into table1 select * from table2 2、如果是有选择性的复制数据表达如下: insert into table1(column1,column2,column3...) select column1,column2,colunm3...from table2 3、一个数据库中的表中的数据复制到另一个数据库中的一个表,使用方法如下: insert into 数据
挨踢小子部落阁
2019/08/20
5580
达梦数据库阻塞死锁及解锁
达梦数据库管理系统是由达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM,其最新版本为8.0版本(DM8)。达梦数据库在性能方面表现极为出色,这主要体现在多个关键方面。
六月的雨在Tencent
2025/01/03
6330
数据库介绍以及使用
第1章 数据库介绍 1.1 数据库概述 l 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 l 什么是数据库管理系统 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。 l 数据库与数据库管理系统
Java学习
2018/04/17
1.2K0
数据库介绍以及使用
达梦数据库生成html格式的巡检报告
这里只列出部分结果,其它的详细内容可以参考:https://share.weiyun.com/5lb2U2M
AiDBA宝典
2021/10/13
1.4K0
相关推荐
国产达梦数据库与MySQL的区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验