点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
如果我有一个CURR(10,2)变量,那么该变量中可以输入的正确值是什么?
A。)总共12个字符。 10个整数,小数点后2位。
B。)总共10个字符。 8个整数,小数点后2位。
我在系统中遇到了这个转储:
短文本
访问表"/img/ACNLQD/NUMRANGE"时发生SQL错误" SQL代码:1438"。
发生了什么?
数据库错误文本:" SQL消息:ORA-01438:值大于指定的此列允许的精度"
每次检查未转储的值时,表中都有一个字段,该字段的值是8个整数和2个小数位。 但是对于遇到的转储,变量/字段具有9个整数和2个小数位(共11个)。 这是什么导致我们系统中的转储? 谢谢。
正确的是10个字符,8个整数和2个小数位。
查看帮助: https://help .sap.com/doc/abapdocu_752_index_htm/7.52/zh-CN/abenddic_currency_field.htm
CURR类型像DEC类型一样存储。 DEC类型存储为打包数字。
数值数据类型,用于保存具有固定小数位数或以类似方式保存的数字的定点数。 关联的预定义ABAP类型为p。 小数位数是数据类型的属性,而不是数据本身的属性(与浮点数一样)。 带打包数字的计算是使用定点算法进行的。 内部表示使用BCD格式。
是的,这完全是错误的
感谢 Sandra Rossi
CURR(10,2)对应于包括10个小数点在内的10位数字。
但是ABAP变量占用6个字节 (10个半字节+ 1个半字节的符号= 11个半字节= 6个字节),因此它最多可能占用11位数字(包括小数点),当最左边的第11位数字不为零时会发生短转储。
SAP建议(例如,在SAP注释下方)永远不要定义具有偶数位数的打包字段,因此(最好是CURR(11,2)或CURR(13,2)等)
< ul>Katherine Darunday ,
正确的答案是选项B。
B。)总共10个字符。 8个整数,带2个小数位。
一种简单的检查方法是创建一个带有参数的测试程序,并分配必要的数据类型(CURR 10,2)。 现在尝试输入数字,当您输入8位数字时,系统不会引发任何错误,并将剩余的两位(.00)分配为十进制。
是的,您对转储的假设是正确的,这是由于该值具有9位数字和2个小数位。
请注意!
一周热门 更多>