ABAP中的SAPCE在ORACLE数据库中的表示

    和一般的开发语言有所不同,在ABAP中空格和空字符串都等同于SPACE,写OPEN SQL语句时也可以直接使用SPACE,但是在数据库SPACE又是如何体现的呢?

    最简单的方法是直接连接到后台的Oracle数据库去查看.很遗憾,我手头没有可以直接访问Oracle数据库的用户.但是没关系,我们自己写个程序验证一下吧!顺便也练习一下在ABAP中NATVIE SQL的写法.


DATA: icount TYPE i.

START-OF-SELECTION.

  SELECT COUNT(*)
  INTO icount
  FROM mara
  WHERE matkl = space.
  IF sy-subrc = 0.
    WRITE: AT /1 icount.
  ENDIF.

先用OPEN SQL算一下物料组为空的物料号数量.

运行结果为151.

到底SPACE在Oracle数据库中的表示是什么呢?是NULL吗?试试看.


DATA: icount TYPE i.

START-OF-SELECTION.

  EXEC SQL.
    select count(*)
    into :icount
    from mara
    where mandt = ’220′ and
          matkl is null
  ENDEXEC.
  IF sy-subrc = 0.
    WRITE: AT /1 icount.
  ENDIF.

运行结果为0

看来不是NULL,再试一下空字符(”),运行结果仍然0.

还可能是什么?是一个空格吗?改程序,运行,结果为151,OK!就是它了.

One Response

Subscribe to comments with RSS.

  • ai2ming says:

    今天发现在SE11中就可以直接看到,具体的菜单为:实用程序->数据库对象->显示