为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:Windows和麒麟V10
【CPU】:
【问题描述】*:
1.表结构
CREATE TABLE "test_t3"
(
"ID" VARCHAR(50),
"Name" VARCHAR(6),
"T1" VARCHAR2(6))
2.插入长度超过6的数据
insert into "test_t3"
values (guid(),'123456789','')
3.在windows服务器上执行成功,但是Name里面的值被截取了。
在麒麟V10服务器上执行失败,提示-6169:列[Name]长度超出定义
4.问题是为什么同样的sql在不同的服务器上有不同的结果,我如果想在windows上也提示长度超出定义,需要怎么配置才能实现这个功能。
5.执行效果图
通过以下检查一下兼容性参数,如果是4,则会自动截取,其他的话,就会提示错误
SELECT * from v$dm_ini where PARA_NAME ='COMPATIBLE_MODE'
看下初始化实例时簇大小页大小是不是设置过小,建议设为32K,可参考以下语句查询下
SELECT '基本参数1:魔术值:'||PERMANENT_MAGIC||',页:'||TO_CHAR(PAGE)||',字符集:'||TO_CHAR(UNICODE)||',大小写敏感:'||TO_CHAR(CASE_SENSITIVE) UNION
SELECT '其他参数:'||PARA_NAME||':'||PARA_VALUE FROM V$DM_INI WHERE PARA_NAME IN ('COMPATIBLE_MODE','MS_PARSE_PERMIT','GLOBAL_EXTENT_SIZE','LENGTH_IN_CHAR','BLANK_PAD_MODE');