目录
一、环境信息
名称 | 值 |
CPU | 12th Gen Intel(R) Core(TM) i7-12700H |
操作系统 | CentOS Linux release 7.9.2009 (Core) |
内存 | 4G |
逻辑核数 | 2 |
DM版本 | 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284194-20240703-234060-20108 4 Msg Version: 12 5 Gsu level(5) cnt: 0 |
二、介绍
在国产化替代的热潮下,我们经常需要做ORACLE到DM的迁移工作,在迁移数据之前,我们需要打开一些达梦兼容ORACLE的相关参数,来使用户在使用达梦时更加丝滑。
三、参数
参数 | 含义 | 默认值 | 推荐值 | 影响描述 |
SPACE_COMPARE_MODE | 是否在查询语句中比较字符串后缀空格。 0:维持原有策略; 1:进行比较; |
0 | 1 | |
COMPATIBLE_MODE | 是否兼容其他数据库模式。 0:不兼容。 1:兼容 SQL92 标准。 2:部分兼容 ORACLE。 3:部分兼容 MS SQL SERVER。 4:部分兼容 MYSQL。 5:兼容 DM6。 6:部分兼容 TERADATA。 7:部分兼容POSTGRES |
0 | 2 | 1、DM 区分空串与 NULL,但 Oracle 不区分。 2、字符串反转策略变化,ORACLE 按字节反转字符串。DM 按字符反转字符串。 3、COMPATIBLE_MODE=2,定义 DATE 类型时,将 DATE 类型强制转换为 DATETIME 类型。COMPATIBLE_MODE=0,定义 DATE 类型时不会转换为DATETIME 类型。 4、插入字符串结尾空格超长,COMPATIBLE_MODE=2,插入字符串结尾空格超长,报错。COMPATIBLE_MODE=0,插入字符串结尾空格超长,截断数据。 5、DEC 类型转为字符串 COMPATIBLE_MODE=2,DEC 类型数据转换为字符串时,转换结果小数点右侧结尾不补 0。 COMPATIBLE_MODE=0,DEC 类型数据转换为字符串时,转换结果小数点右侧结尾补 0。 |
ORDER_BY_NULLS_FLAG | ORDER_BY_NULLS_FLAG 控制排序时 NULL 值返回的位置,取值 0、1、2、3。 0 表示 NULL 值始终在最前面返回; 1 表示 ASC 升序排序时 NULL 值在最后返回,DESC 降序排序时 NULL 值在最前面返回,在参数等于 1 的情况下,NULL 值的返回与 ORACLE 保持一致; 2 表示 ASC 升序排序时 NULL 值在最前面返回,DESC 降序排序时 NULL 值在最后返回,在参数等于 2 的情况下,NULL 值的返回与 MYSQL 保持一致; 3 表示在取值为 1 的基础上,将空串置于 NULL 值和非空值之间0可能会影响应用取数据。 |
0 | 1 | |
DATETIME_FMT_MODE | 是否兼容ORACLE 的五种日期时间类型的默认日期时间格式。 0:不兼容; 1:兼容; |
0 | 1 | |
PL_SQLCODE_COMPATIBLE | 默认值为 0; 如果设置为 1,则 PL 的异常处理中,SQLCODE 的错误码值需要尽量与 ORACLE 一致。 |
0 | 1 | |
VIEW_ACCESS_MODE | 指定视图的自主访问控制机制。 0:兼容 DM; 1:兼容 ORACLE; |
0 | 1 | |
CALC_AS_DECIMAL | 0:默认值,表示不对字符串与整型的比较结果类型做任何修改; 1:表示字符串与整型转换为 BIGINT 比较数据溢出时,则转换为 DEC 进行比较; 2:表示字符串与整型的比较强制转换为 DEC 进行比较; |
0 | 1 | |
ENABLE_PL_SYNONYM | 是否可以通过同义词执行非系统用户创建的包或者存储过程。 1是,0否。 若设置为0,在解析过程/包名时,如果借助了同义词,则这些对象要么是系统内部创建的,或者其创建者必须为系统用户,否则一律报错 |
0 | 1 | |
DEL_HP_OPT_FLAG | 控制分区表的操作优化; 0:不优化;1:打开分区表DELETE优化; 2:控制范围分区表创建的优化处理,转换为数据流方式实现; 4:允许语句块中的间隔分区表自动扩展; 8:开启对TRUNCATE分区表的优化处理; 16:完全刷新时删除老数据使用DELETE方式; 32:开启对分区表全局索引DDL操作的优化处理,直接操作索引数据,无须重建全局索引; 支持使用上述有效值的组合值,如7表示同时进行1、2、4的优化 |
0 | 4 |