For example:  与外围系统接口,外围系统数据库存储数据是有0000的,但是SAP数据库中存储是没有0000,可以用前导零函数或者这个关键字处理

PACK格式:PACK source TO destination.

标准教材上说: In contrast to the conversion rules for elementary data types, a decimal separator in source is ignored.说什么小数点会被忽略,反正我是不信,尝试一下。

DATA: LV_PACK TYPE P LENGTH 8 DECIMALS 3 VALUE '123.456',
      CHAR1   TYPE C LENGTH 10,
      CHAR2   TYPE C LENGTH 10.
PACK LV_PACK TO CHAR1.
WRITE : / CHAR1.

输出:

果然如此,我居然无言以对。

再举一个例子。

DATA: LV_PACK TYPE CHAR255 VALUE '王健林.王思聪',
      CHAR1   TYPE C LENGTH 10,
      CHAR2   TYPE C LENGTH 10.

PACK LV_PACK TO CHAR1.
WRITE : / CHAR1.

输出:

原因在标准教材上也有说明:The data type of source must be character-type,flat, and its content must be interpretable as a numeric value.

再说说比较有用的UNPACK格式:UNPACK source TO destination.

标准教材上这样说:

If the data type of source is not of the type p with length 16 and without decimal places, then the content of source is converted to this data type. Contrary to the rules described in conversion rules for elementary data types, any decimal separator in source is completely ignored. 
The digits of the interim result are assigned to data object destination right-aligned and without +/- sign. Any additional places in destination are filled with leading zeros. If the length of destination is not sufficient, the assigned variable is truncated from the left.

大概意思同上面的PACK,唯一的好处是什么,就是刚开始说明的,比如别的系统是需要千导0的,我们得给他按位数转换上。

直接看例子:

DATA: PACK  TYPE P LENGTH 8 DECIMALS 3 VALUE '123.456',
      CHAR1 TYPE C LENGTH 10,
      CHAR2 TYPE C LENGTH 10.
MOVE   PACK TO CHAR1.
UNPACK PACK TO CHAR2.

WRITE : / CHAR1.
WRITE : / CHAR2.

输出:

释疑の语法Unpackpack相关推荐

  1. 释疑の语法 ON CHANGE OF

    先看标准的语法: ON CHANGE OF dobj [OR dobj1 [OR dobj2] ... ].   statement_block1 [ELSE.   statement_block2] ...

  2. 释疑の语法LOCAL

    作用就是把当前对象保存在一个临时存储空间,它只能用到子程序或者FUNTION MODULE里,在程序结束的时候数据对象重新分配在临时空间的值. 如果用LOCAL对同一个对象执行了好几遍,那么只有第一次 ...

  3. java中类图概念,程序员眼中的UML(4)--类图释疑之一,Attribute和Property之区别

    程序员眼中的UML(4) --类图释疑之一,Attribute和Property之区别 上一篇中提出了很多问题,其中最令人费解的可能就是Attribute和Property之区别了吧.我在网络上寻找良 ...

  4. 语法解析及Antlr

    目录 1 语法解析 1.1 语法解析器 1.1.1 执行流程 1.1.2  语法树好处 1.1.3 解析方法LL与LR 1.1.4 抽象语法树(AST) 1.2  语法规则文件 2 Antlr 2.1 ...

  5. 【JavaScript总结】JavaScript语法基础:BOM

    DOM是文档对象模型,操作对象是文档 window.document,和浏览器没有直接关系 DOM常用事件: onload,onbeforeunload, onunload onclick,ondbl ...

  6. 【JavaScript总结】JavaScript语法基础:JS编码

    运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...

  7. 【JavaScript总结】JavaScript语法基础:数据类型

    ------>数据类型有哪些? ->基本类型:数字类型,布尔类型,字符串类型 ->引用类型:对象类型,函数类型 ->空类型:null 和 undefined ->运算符: ...

  8. 第二天:Vue基础语法

    1.计算属性的setter和getter 每个计算属性都有setter和getter 一般来说用到setter较少,都不希望数据被改动,所以只用getter时也有缩写 <!DOCTYPE htm ...

  9. LLVM语法语义指令特性

    LLVM语法语义指令特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数,全局变 ...

最新文章

  1. 服务注册发现consul之四: 分布式锁之四:基于Consul的KV存储和分布式信号量实现分布式锁...
  2. java do while变量无法赋值_Java流是否等同于具有变量赋值的while
  3. C++ Primer 5th笔记(chap 18 大型程序工具)内联命名空间 (inline namespace)
  4. 面试了57位数据分析师,我发现牛逼的人都有这4个特质
  5. 蚂蚁动态卡片,让App首页实现敏捷更新
  6. SAP UI5列表的排序
  7. Python《搞事情==蜂-鸟-图-片(二)》
  8. 蓝桥杯 基础练习 报时助手
  9. linux7怎么禁止用户密码登录,Centos7锁定用户禁止登陆的解决办法
  10. 递归 dfs 记忆化搜索 动态规划
  11. 学会了Python就可以做数据分析师?别天真了
  12. 怎么通过Win pe下面注册表编辑器载入原来系统注册表更改信息
  13. 使命召唤9怎么样使用计算机,玩家实测COD9 教你如何使用FXAA、TXAA
  14. 对于波特率传输一个bit的时间的计算
  15. 基于MATLAB的说话人识别系统
  16. IP地址大全之IPV4版
  17. 【web素材】03-24款后台管理系统网站模板
  18. 对话ACE第五期:到底什么才是真正的HTAP?
  19. STM32 GPIOx_CRL/GPIOx_CRH 寄存器
  20. 身份认证(暴力破解基础)

热门文章

  1. 当React Native 遇到了Google reCAPTCHA
  2. [转载]配置unp.h头文件环境
  3. MySQL: ERROR 1040: Too many connections”的异常情况1
  4. 域名反向解析在自建邮件群发服务器中的应用
  5. js中对日期进行加减
  6. 串口ic读卡器源码-c#代码(2)续上
  7. PHP快速入门教程:for循环
  8. 《以前工作中的三大痛点,只因他们没学Python》
  9. LFS 8.3 中文翻译版本发布!
  10. wordpress 拾遗