
- SAP ABAP 教程
- SAP ABAP - 首頁
- SAP ABAP - 概述
- SAP ABAP - 環境
- SAP ABAP - 螢幕導航
- SAP ABAP - 基本語法
- SAP ABAP - 資料型別
- SAP ABAP - 變數
- SAP ABAP - 常量和字面量
- SAP ABAP - 運算子
- SAP ABAP - 迴圈控制
- SAP ABAP - 決策
- SAP ABAP - 字串
- SAP ABAP - 日期和時間
- SAP ABAP - 資料格式化
- SAP ABAP - 異常處理
- SAP ABAP - 字典
- SAP ABAP - 資料域
- SAP ABAP - 資料元素
- SAP ABAP - 表
- SAP ABAP - 結構
- SAP ABAP - 檢視
- SAP ABAP - 搜尋幫助
- SAP ABAP - 鎖物件
- SAP ABAP - 模組化
- SAP ABAP - 子程式
- SAP ABAP - 宏
- SAP ABAP - 函式模組
- SAP ABAP - 包含程式
- SAP ABAP - Open SQL 概述
- SAP ABAP - 原生SQL概述
- SAP ABAP - 內部表
- SAP ABAP - 建立內部表
- ABAP - 填充內部表
- SAP ABAP - 複製內部表
- SAP ABAP - 讀取內部表
- SAP ABAP - 刪除內部表
- SAP ABAP - 面向物件
- SAP ABAP - 物件
- SAP ABAP - 類
- SAP ABAP - 繼承
- SAP ABAP - 多型性
- SAP ABAP - 封裝
- SAP ABAP - 介面
- SAP ABAP - 物件事件
- SAP ABAP - 報表程式設計
- SAP ABAP - 對話程式設計
- SAP ABAP - 智慧表單
- SAP ABAP - SAPscripts
- SAP ABAP - 使用者出口
- SAP ABAP - 使用者出口
- SAP ABAP - 業務附加介面 (Business Add-Ins)
- SAP ABAP - Web Dynpro
- SAP ABAP 有用資源
- SAP ABAP - 問答
- SAP ABAP - 快速指南
- SAP ABAP - 有用資源
- SAP ABAP - 討論
SAP ABAP - 原生SQL概述
術語“原生SQL”指的是所有可以靜態傳輸到資料庫介面的原生SQL介面的所有語句。原生SQL語句不屬於ABAP語言範圍,也不遵循ABAP語法。ABAP只是包含用於隔離程式部分的語句,在這些部分中可以列出原生SQL語句。

在原生SQL中,主要可以使用資料庫特定的SQL語句。這些語句從原生SQL介面不變地傳輸到資料庫系統並執行。可以使用相關資料庫的完整SQL語言範圍,並且不需要在ABAP字典中宣告所定址的資料庫表。還有一些小的SAP特定的原生SQL語句,這些語句由原生SQL介面以特定方式處理。
要使用原生SQL語句,必須在前面加上EXEC SQL語句,並在後面加上ENDEXEC語句。
以下是語法:
EXEC SQL PERFORMING <form>. <Native SQL statement> ENDEXEC.
這些語句定義了ABAP程式中的一個區域,可以在其中列出一種或多種原生SQL語句。輸入的語句將傳遞到原生SQL介面,然後按如下方式處理:
所有對所定址資料庫系統的程式介面有效的SQL語句都可以在EXEC和ENDEXEC之間列出,特別是DDL(資料定義語言)語句。
這些SQL語句主要不變地從原生SQL介面傳遞到資料庫系統。語法規則由資料庫系統指定,特別是資料庫物件的區分大小寫規則。
如果語法允許在各個語句之間使用分隔符,則可以在EXEC和ENDEXEC之間包含多個原生SQL語句。
可以在EXEC和ENDEXEC之間指定SAP特定的原生SQL語言元素。這些語句不會直接從原生SQL介面傳遞到資料庫,但會進行適當的轉換。
示例
SPFLI是標準的SAP表,用於儲存航班時刻資訊。這在R/3 SAP系統中可用,具體取決於版本和發行級別。當您在相關SAP事務(例如SE11或SE80)中輸入表名SPFLI時,您可以檢視此資訊。您還可以使用這兩個事務檢視此資料庫表中包含的資料。
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.
以上程式碼產生以下輸出:
0400 FRANKFURT NEW YORK 2402 FRANKFURT BERLIN 0402 FRANKFURT NEW YORK
廣告