达梦数据库适配记录

达梦数据库适配记录

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存储过程访问

你可能感兴趣的:(数据库,oracle)