SAPは、様々なプラットフォーム上で稼動することが出来ます。
このプラットフォームの相違を吸収しているのが「ABAP VM」や
「OpenSQLアーキテクチャ」です。
今回は、OpenSQLのご紹介です。
OpenSQLとは、DBシステムに左右されずに同一の構文で、
SQLを発行することができます。
ABAP内ではSQLが発行されると、BASIS層のDBインターフェースを通じて、
個々のDBシステム用のSQL(NativeSQL)に変換されて処理が行われます。
・OpenSQL 例)Select文
SELECT (抽出項目)
INTO (変数)
FROM (抽出テーブル)
[WHERE (条件)]
[GROUP BY (項目)]
[HAVING (条件)]
[ORDER BY (項目)].
OpenSQLの構文は、上記をご覧いただくとわかる通り、
特に特別な構文はほとんどありません。
ただし、「GROUP BY」や「[HAVING」「ORDER BY」は、
あまり使用されない傾向にあります。
「ORDER BY」については、ABAPのヘルプに、
データを抽出した後、ソート(Sort命令)を使用したほうが
パフォーマンスがよくなると記載されているくらいです。
このため、ABAPにおけるSQLは、単純にデータを抽出するのみで、
集計やソート、データのマージなどは、ABAPで行われることが
多いです。
ABAPのOpenSQLでは、内部テーブルを使用した構文が
特徴的だと思いますが、これは内部テーブルの話題の際に
触れたいと思います。
