点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,我这里的情况很奇怪。
"我的数据元素"定义为8位小数和3位小数。 该数据元素用在表格字段中,并且该表格用作SE24中class属性的引用类型。
但是在运行时,基于表的类属性的字段大小小于ddic定义,因此有时会由于大小溢出而发生转储。 运行时的字段大小为5而不是8。
为什么运行时的字段大小与ddic定义不同? 怎么处理呢? 我不能只更改数据元素的大小,因为它会影响其他程序。
数据元素定义
表定义
class属性
运行时大小
(24.6 kB)
您做出了错误的假设。
DDIC和ABAP之间没有不连贯性:
如果DDIC打包字段的位数为偶数(8),则其输出长度相同,但是ABAP程序仍然可以再存储一位数字(9),因此将 最终将导致存储此多余数字的数据库错误,并且由于输出长度而无法显示该多余数字。
因此,对于DDIC压缩字段,请始终使用奇数个数字(CURR,
注意:溢出的短转储可能是由其他原因引起的,如果需要更多支持,请发布短转储(附加的TXT ZIP文件)。
转储详细信息
创建并使用 新的中间字段ZDE_NEGO_PORCENTUAL_LG比您当前的字段ZDE_NEGO_PORCENTUAL大。
插入IF语句:
如果ZDE_NEGO_PORCENTUAL_LG> 99,999.999。 "例如
写道:/ZDE_NEGO_PORCENTUAL_LG。 "例如
MESSAGE ...'ZDE_NEGO_PORCENTUAL_LG太大'。 "例如
ENDIF。
更新:我可以模拟转储,只需在小数点前插入6位数字即可。 这就是在生产环境中发生的情况:计算出的值在小数点前六位。
1。 添加TRY-CATCH ...,RAISING ...(以检测潜在问题:例如字符或字符串或值太大,意外将其移动或计算为ZDE_NEGO_PORCENTUAL字段)
2。 创造。 填充并显示新的(较大的)中间字段的值:
ZDE_NEGO_PORCENTUAL_CHAR(例如:CHAR40)
ZDE_NEGO_PORCENTUAL_LG(例如:DEC,长度17,十进制6)
3。 在SAP Development System中:创建临时软中断,以查看实际值(以查看值是否为CHAR或太大等),然后填充以下字段:ZDE_NEGO_PORCENTUAL,ZDE_NEGO_PORCENTUAL_LG,ZDE_NEGO_PORCENTUAL_CHAR
4。 终止前ZDE_NEGO_PORCENTUAL字段中的实际值是多少?
5。 语句在哪里计算(或移至)ZDE_NEGO_PORCENTUAL?
消息
" ORA-01438:值大于此列允许的指定精度
"原因:插入或更新记录时,输入的数字值超出了为列定义的精度
"操作:输入一个符合数字列精度的值,或者将MODIFY选项与ALTER TABLE命令一起使用以扩展精度。"
参考
http://www.dba-oracle.com/t_ora_01438_value_forr_than_specified_precision_ 。/p>
嗨,
您的域名声明
长度指定,字符数= 8
小数位= 3。
这意味着总长度为8,其中3保留给小数部分,5保留为整数
例如 99999.999
长度不包含'。' 对于输出长度
一周热门 更多>