达梦8初始化参数之BLANK_PAD_MODE

参数介绍

之前从oracle11G迁移到达梦8,在Oracle没问题的数据,导入到达梦8中发现一直抛错,提示主键有冲突数据,发现是BLANK_PAD_MODE参数设置为0导致的.下面会初始化两个库通过实例演示一下该参数的影响
BLANK_PAD_MODE是初始化数据库时一个参数,数据库创建后不能修改,达梦官方文档中的解释为:
设置字符串比较时, 结尾空格填充模式是否兼容 ORACLE。 取值: 1 兼容; 0 不兼容。默认为 0。可选参数。

测试步骤

初始化测试环境

./dminit path=/dmdata blank_pad_mode=0 db_name=blank0 instance_name=blank0 port_num=6000
./dminit path=/dmdata blank_pad_mode=1 db_name=blank1 instance_name=blank1 port_num=6001
第一个库blank_pad_mode=0 存储在/dmdata/blank0下,数据库端口为6000
第二个库blank_pad_mode=1 存储在/dmdata/blank1下,数据库端口为6001

[dmdba@czw bin]$ ./dminit path=/dmdata blank_pad_mode=0 db_name=blank0 instance_name=blank0 port_num=6000
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-05-25
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
 log file path: /dmdata/blank0/blank001.log
 log file path: /dmdata/blank0/blank002.log
write to dir [/dmdata/blank0].
create dm database success. 2022-07-11 23:09:14
[dmdba@czw bin]$ ./dminit path=/dmdata blank_pad_mode=1 db_name=blank1 instance_name=blank1 port_num=6001
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-05-25
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
 log file path: /dmdata/blank1/blank101.log
 log file path: /dmdata/blank1/blank102.log
write to dir [/dmdata/blank1].
create dm database success. 2022-07-11 23:09:28

通过dm_service_installer.sh脚本创建服务,并启动数据库

[root@czw root]# pwd
/opt/dmdbms/script/root
[root@czw root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/blank0/dm.ini -p blank0
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceblank0.service to /usr/lib/systemd/system/DmServiceblank0.service.
创建服务(DmServiceblank0)完成
[root@czw root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/blank1/dm.ini -p blank1
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceblank1.service to /usr/lib/systemd/system/DmServiceblank1.service.
创建服务(DmServiceblank1)完成
[root@czw root]# systemctl start DmServiceblank0 DmServiceblank1

主键和唯一索引测试

BLANK_PAD_MODE=0,'a’和’a '被判断为重复数据,会抛错,-6602 违反唯一性约束

[dmdba@czw bin]$ ./disql sysdba/SYSDBA@localhost:6000

服务器[localhost:6000]:处于普通打开状态
登录使用时间 : 0.923(ms)
disql V8
SQL> CREATE TABLE TEST_BLANK_PAD(COL_A VARCHAR(20) PRIMARY KEY);
操作已执行
已用时间: 4.727(毫秒). 执行号:55400.
SQL> insert into test_blank_pad
2   select 'a' from dual
3   union all
4   select 'a  ' from dual;
insert into test_blank_pad
select 'a' from dual
union all
select 'a  ' from dual;
[-6602]:违反表[TEST_BLANK_PAD]唯一性约束.
已用时间: 0.934(毫秒). 执行号:0.

BLANK_PAD_MODE=1兼容ORACLE模式下的情况下,数据可以写入

SQL> CREATE TABLE TEST_BLANK_PAD(COL_A VARCHAR(20) PRIMARY KEY
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值