达梦数据库适配记录

达梦数据库适配记录

1、系统预留关键字与表或字段冲突导致读取不到数据

​ 为了兼容国内外主流数据库,达梦系统关键字较多,应用系统数据从其他数据库迁移到达梦时可能会遇到表名,字段名等是达梦的关键字,从而导致查询报错。此时,可以选择屏蔽部分达梦的关键字。

达梦数据库中有下面三种方法屏蔽关键字:

  1. 修改数据库dm.ini中参数EXCLUDE_RESERVED_WORDS
  2. 配置客户端dm_svc.conf文件,添加KEYWORDS配置项
  3. 使用sp_set_para_string_value()修改

(1) 参看数据库是否有关键字

SELECT * FROM "V$DM_INI" WHERE PARA_NAME LIKE 'EXCLUDE_RESERVED_WORDS';

(2) 解决办法

截止到2023年6月2日,不工系统需要屏蔽以下关键字,直接执行对应命令即可,多个关键字用逗号隔开,修改成功之后重启数据库才能生效

sp_set_para_string_value(2,'EXCLUDE_RESERVED_WORDS','row,columns,section,image,format,speed')
2、达梦数据库大小写敏感问题

​ 达梦数据库默认大小写敏感,如果没有在字段中对小写的字段加双引号,则默认全部为大写,如果修改为大小写不敏感,则当数据库初始化以后就不能再设置大小写不敏感,只能再启动时候设置,docker启动命令如下:

docker run -d -p 5236:5236 --restart=always --name dm8_01 --privileged=true -e CASE_SENSITIVE=0 -e CHARSET=1 -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e INSTANCE_NAME=dm8_01 -e UNICODE_FLAG=1 -v /data/dm8_01:/opt/dmdbms/data dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4

即增加**-e CASE_SENSITIVE=0 忽略大小写 -e CHARSET=1字符集utf-8 **两个环境变量

3、达梦数据库调用表需要加模式名问题

​ 达梦数据库中没有与SqlServer类似的数据库概念,取而代之类似的是模式,且一个用户被创建时会创建一个同名的模式名,一个用户访问自己同名的模式名可以不加模式访问,此外都需要以模式名.表名or视图or存储过程访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈自在-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值