About case-insensitive

abap.png


如果数据库中存在大小写的字段,而我们在选择数据的时候没有注意,那么就有可能有一些数据被我们忽略,这是客户不能接受的.我曾经写过一篇关于如何处理自建表区分大小写的文章,可以解决自建表的问题,但是还是有可能和用户输入的有冲突.

首先你可以参阅我的那篇文章:How to avoid lower case text convert to upper case in custom table

举例来说,如果数据库中存取的是Hello World,我们想把这条数据选取出来,那么我们必须输入与其完全相同的内容,如果使用模糊查询的话,也要该大写的大写,该小写的小写,否则不能选择出相应的数据.

而对于客户来说,他可能根本不会关心大小写,比如,他想输入HELLO WORLD就把这条数据选择出来,这样我们该如何处理呢?

OPEN SQL可能无法完成这个任务,于是我们可以尝试一下Native SQL.

使用方法:

TRANSLATE ls TO UPPER CASE. “不管输入的东西是大写还是小写,全部转成大写(注意,你要确定是否真的大小写都可以)

  EXEC SQL PERFORMING append_itab.
    SELECT * FROM <dbtable> INTO :wa
       WHERE upper(<select_field>) EQ :ls
   ENDEXEC.
    form append_itab.
      append wa to itab.
    endform
  这也算是一个小小的tips吧,希望对大家有用.


About The Author

从事SAP行业有些年头,对SAP技术稍有了解; 如无特别声明,本博客文章为原创,转载请注明; 博主MSN:xuchunbo0901@hotmail.com; 博主邮箱:bob.xu@abaptech.com。

No Comments

Leave A Reply


注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

无觅相关文章插件,快速提升流量