SAP ABAP 本地SQL概述

2018-01-01 12:56 更新

術(shù)語“本地SQL"是指可以靜態(tài)傳輸?shù)綌?shù)據(jù)庫接口的本機(jī)SQL接口的所有語句。 本地SQL語句不屬于ABAP的語言范圍,不遵循ABAP語法。 ABAP僅包含用于隔離其中可以列出Native SQL語句的程序段的語句。

Native SQL Statement

在本機(jī)SQL中,主要可以使用特定于數(shù)據(jù)庫的SQL語句。 這些將從本地SQL接口不變地傳輸?shù)綌?shù)據(jù)庫系統(tǒng)并執(zhí)行。 可以使用相關(guān)數(shù)據(jù)庫的完整SQL語言范圍,并且所尋址的數(shù)據(jù)庫表不必在ABAP字典中聲明。 還有一小組SAP特定的本地SQL語句,由本地SQL接口以特定方式處理。

要使用本地SQL語句,必須在其前面加上EXEC SQL語句,并以ENDEXEC語句結(jié)束。

以下是語法:

EXEC SQL PERFORMING <form>.  
   <Native SQL statement> 
ENDEXEC.

這些語句定義ABAP程序中可以列出一個或多個Native SQL語句的區(qū)域。 輸入的語句將傳遞到Native SQL界面,然后按如下所示進(jìn)行處理:

  • 對于所尋址的數(shù)據(jù)庫系統(tǒng)的程序接口有效的所有SQL語句都可以在EXEC和ENDEXEC之間列出,特別是DDL(數(shù)據(jù)定義語言)語句。

  • 這些SQL語句從Native SQL接口傳遞到數(shù)據(jù)庫系統(tǒng)基本不變。 語法規(guī)則由數(shù)據(jù)庫系統(tǒng)指定,特別是數(shù)據(jù)庫對象的區(qū)分大小寫規(guī)則。

  • 如果語法允許單個語句之間的分隔符,則可以在EXEC和ENDEXEC之間包括許多本地SQL語句。

  • 可以在EXEC和ENDEXEC之間指定SAP特定的本地SQL語言元素。 這些語句不會直接從Native SQL接口傳遞到數(shù)據(jù)庫,但會適當(dāng)?shù)剡M(jìn)行轉(zhuǎn)換。

例子

SPFLI是用于存儲航班時(shí)刻表信息的標(biāo)準(zhǔn)SAP表。 這在R / 3 SAP系統(tǒng)中可用,具體取決于版本和發(fā)布級別。 在將表名稱SPFLI輸入到相關(guān)SAP事務(wù)(如SE11或SE80)中時(shí),可以查看此信息。 您還可以使用這兩個事務(wù)查看此數(shù)據(jù)庫表中包含的數(shù)據(jù)。

REPORT ZDEMONATIVE_SQL. 
DATA: BEGIN OF wa,  
      connid  TYPE SPFLI-connid,
      cityfrom TYPE SPFLI-cityfrom,
      cityto  TYPE SPFLI-cityto,  
      END OF wa. 
	
DATA c1 TYPE SPFLI-carrid VALUE 'LH'. 
EXEC SQL PERFORMING loop_output.
   SELECT connid, cityfrom, cityto  
   INTO :wa  
   FROM SPFLI  
   WHERE carrid = :c1 
ENDEXEC. 

FORM loop_output.  
   WRITE: / wa-connid, wa-cityfrom, wa-cityto. 
ENDFORM.

上面的代碼產(chǎn)生以下輸出:

0400  FRANKFURT  NEW YORK 
2402  FRANKFURT  BERLIN 
0402  FRANKFURT  NEW YORK
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號