OPEN SQL也不是万能的,存在一定的局限性。例如后台数据库为Oracle,对数据表中某个字段大小写是不固定的,若以这个字段为查旬条件,一般Oracle处理方法是使用Upper /Lower函数据将被查询字段都转换为大、小定以固定查询条件,但OPEN SQL无法实现此功能,只有借助于Native SQL. 不过,Native SQL无法直接身内表直接传递所有值,可以通过调用SubRouting的方式对内表进行APPEND操作。
DATA: BEGIN OF T_ORDSUM OCCURS 0,
AUFNR LIKE AFPO-AUFNR,
WEMNG LIKE AFPO-WEMNG,
END OF T_ORDSUM.
EXEC SQL Performing AppendSqlData.
SELECT aufnr wemng
INTO :t_ordsum-aufnr
t_ordsum-wemng
FROM afpo
WHERE charg = l_str
OR upper(23mpf) = l_str
endexec.
LOOP AT T_ORDSUM.
WRITE: T_ORDSUM.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form AppendSqlData
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM APPENDSQLDATA.
APPEND T_ORDSUM.
ENDFORM. "AppendSqlData
Native可以实现对DataBase存储过程的调用以及游标的操作。