CONCATENATE命令とは文字列の結合を行う命令である。文字列を扱う
Char, Numeric, Dats, Time, Stringの変数で使用する事が可能だ。
単純に文字列の結合のみを行う方法、結合した文字列間に区切り文字を
挿入する方法、データ型の長さに応じてスペースを挿入する方法等がある。
それぞれについてサンプルコードで説明しよう。

DATA: V_CHAR(15) TYPE C.
CONCATENATE 'ABC' 'DEF' 'GHI' INTO V_CHAR.
この例では単純に文字列の結合を行った。
‘ABC’、’DEF’、’GHI’の文字を変数:V_CHARに結合して挿入した事になるので
結果は’ABCDEFGHI’となる。
 
DATA: V_CHAR(15) TYPE C.

CONCATENATE 'ABC' 'DEF' 'GHI' INTO V_CHAR
SEPARATED BY ';'.
この例では文字列の結合を行う際にSEPARATED BYオプションにより;(セミコロン)で区切った。
‘ABC’、’DEF’、’GHI’の文字間に;(セミコロン)が挿入されるので
結果は’ABC;DEF;GHI’となる。
区切る文字はSpace(空白)、,(カンマ)等どのような文字でも可能である。
 
DATA: V_CHAR(15) TYPE C.
TYPES: BEGIN OF t_char,
col1(5) type c,
col2(10) type c,
col3(5) type c,
END of t_char.
DATA: wa_char type t_char.
wa_char-col1 = 'ABC'.
wa_char-col2 = 'DEF'.
wa_char-col3 = 'GHI'. CONCATENATE wa_char-col1 wa_char-col2 wa_char-col3 INTO V_CHAR
RESPECTING BLANKS.
この例では文字列の結合を行う際にRESPECTING BLANKSオプションを使用した。
結果は’ABC DEF GHI ‘のようになる。
RESPECTING BLANKSオプションはデータ長に合わせて自動的にスペース埋めしてくれるオプションであり、
固定長のファイル出力等を行いたい際に重宝する事ができるのではないだろう。
但し、この命令は比較的新しく、ECC6.0当たりでは使用する事ができない。
      CONCATENATE i_wk_key1
i_wk_key2
i_wk_key3
INTO e_wk_key RESPECTING BLANKS.

  

CONCATENATE命令(文字列の結合)的更多相关文章

  1. CONDENSE命令により、文字列から冗長スペースが削除

    CONDENSE 命令により.文字列から冗長スペースが削除されます. CONDENSE c [NO-GAPS]. この命令により.項目 c に先行空白が含まれる場合は削除され.その他の空白列がある場合 ...

  2. SHIFT(文字列の指定位置数の移動)

    文字ごとの項目内容の移動 以下のような SHIFT 命令のバリアントを使用すると.項目内容を移動することができます.SHIFT を使用すると.文字ごとに項目内容が移動します. 文字列の指定位置数の移動 ...

  3. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet (转帖)

    JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet 功能:這支程式的主要功能是將 javafx 與 swi ...

  4. linux ll 命令各列的含义

    linux ll 命令各列的含义:

  5. AD域控Dsquery查询命令实列

    注:请以管理员的身份运行cmd程序,要不然某些命令不生效 AD域控Dsquery查询命令实列 查询技术支持二部的所有用户          dsquery user OU=技术支持二部,OU=技术部, ...

  6. 怎么取cxgrid某一列的合计值

    怎么取cxgrid某一列的合计值   1.cxGrid1DBTableView1->optionsview->Footer 设为True 2.cxGrid1DBTableView1-> ...

  7. ORACLE列值合併

    合併列值最通用的方法就是寫一個自定義函數去實現,這裏介紹的是其它方法. 在SQL Server中合併列值能够使用For Xml Path,在Oracle中則能够使用wm_concat 或 ListAg ...

  8. [Xamarin.Android] 結合Windows Azure與Google cloud message 來實現Push Notification (转帖)

    這一篇要討論如何使用Xamarin.Android 整合GCM以及Windows Azure來實作Android手機上的推播通知服務. 這篇文章比較著重概念的部分,在開始讀這篇之前,也可以先參考一下X ...

  9. SPLIT(文字列の分割)

    概要 SPLIT命令は特定の文字で値を分割する命令だ.タブ区切りや.カンマ区切り等のファイルからデータを取得し値を各項目に振り分けたい時に使用する事が多いだろう.また.XMLファイル等を使用してインタ ...

随机推荐

  1. CentOS 7.3 下 Mysql(mariadb)的安装

    LNMP的安装中 Nginx的安装很简单,我一般去Nginx官方网站上下载对应版本的rpm包后,上传到终端rpm安装.再此不多赘述. 但是在CentOS7中安装最新的mysql(mariadb)却经常 ...

  2. 《浪潮之巅》(第2版):精彩的IT商战史

    2011年看过第一版.以为看新版会跳过大部分看过的内容,结果发现还是从头到尾看了一遍,2011年看过的内容已经记不太确切了:) 另外IT的历史太精彩了,许多故事都知道,再看还是挺有意思.当然作者的文字 ...

  3. 关于《Selenium 2自动化测试实战 基于Python语言》学习过程中键盘的常用操作

    下边是自己在学习过程中总结的一些常用键盘的操作

  4. Android(java)学习笔记14:Java线程池

    1. 线程池: 1)程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互.而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池. 2)线程池里 ...

  5. 管道(Pipelines)模型

    Pipeline模型最早被使用在Unix操作系统中.据称,假设说Unix是计算机文明中最伟大的发明,那么,Unix下的Pipe管道就是尾随Unix所带来的还有一个伟大的发明[1].我觉得管道的出现,所 ...

  6. struts2+extjs文件上传完整实现(攻克了上传中的各种问题)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/shanhuhau/article/details/28617999 首先须要引入上传控件 <s ...

  7. ACM-ICPC (10/19)

    这两天在看虚树,的确很难理解. 不过大致的思路就是说删掉一些没有用的点,但是仍然保持树的相对结构,树上只有两种点,一个是集合点,和一些LCA,这些LCA是为了保持树的相对结构,才留下的. 具体做法网上 ...

  8. 小草的Trouble学生信息管理系统

    小草最近上课学C++,在图书馆纠结了好久,决定做这个小东西,没想到遇到了好多困难,好吧,功夫不负有心人,小草也在敲代码中提高了不少. 小草硬是学了好几天,才搞完这个东西,也算是了结了小草的一个心结. ...

  9. SQL中char、varchar、nvarchar、text 的区别

    char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. nvarchar(n) ...

  10. HttpHandler使用Session

    继承自IHttpHandler的类要实现两个接口:ProcessRequest和IsReusable但还不能使用Session,要使用Session需要下面的步骤处理: 1.先引用System.Web ...