为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:达梦8
【操作系统】:window
【CPU】:x86
【问题描述】*:使用case when报错:-6121: 数据精度超出范围
在开发过程中使用case whern ,例如:
query.select(strExp.when( other:"1111") .then(strExp;otherwise("2222"))
会导致程序报错-6121: 数据精度超出范围;
报错语句中出现cast('1111' as varchar(2147483647) 的字样;
定义长度明显超过了允许长度;
是因为框架中cast函数转换成varchar类型的精度不对 varchar最多是32767 超过这个数值就是错误的语法,改成 cast('1111' as varchar(32767) ) 即可