
- 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 - 開放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 - SAPscript
- SAP ABAP - 客戶出口
- SAP ABAP - 使用者出口
- SAP ABAP - 業務附加功能
- SAP ABAP - Web Dynpro
- SAP ABAP 有用資源
- SAP ABAP - 問答
- SAP ABAP - 快速指南
- SAP ABAP - 有用資源
- SAP ABAP - 討論
SAP ABAP - 開放SQL概述
開放SQL指的是ABAP語句的一個子集,它允許直接訪問當前AS ABAP中央資料庫中的資料。開放SQL語句將SQL中支援的資料操作語言功能對映到ABAP中,並且所有資料庫系統都支援它。
開放SQL語句在資料庫介面的開放SQL介面中轉換為特定於資料庫的SQL。然後將其傳遞到資料庫系統並執行。開放SQL語句可用於訪問在ABAP字典中宣告的資料庫表。預設情況下,訪問AS ABAP的中央資料庫,並且還可以透過輔助資料庫連線訪問其他資料庫。
在ABAP程式中使用任何這些語句時,務必檢查執行的操作是否成功。如果嘗試將記錄插入資料庫表但未正確插入,則必須知道這一點,以便在程式中採取適當的操作。這可以透過使用已經使用的系統欄位SY-SUBRC來完成。當語句成功執行時,SY-SUBRC欄位將包含值0,因此可以檢查該值,如果出現,則可以繼續執行程式。
DATA語句用於宣告工作區。讓我們將其命名為'wa_customers1'。與其為此宣告一種資料型別,不如宣告構成表的幾個欄位。最簡單的方法是使用LIKE語句。
INSERT語句
此處宣告的wa_customers1工作區與ZCUSTOMERS1表類似,採用相同的結構,但本身不成為表。此工作區只能儲存一條記錄。聲明後,可以使用INSERT語句將工作區及其包含的記錄插入表中。此處的程式碼將顯示為'INSERT ZCUSTOMERS1 FROM wa_customers1'。
工作區必須填充一些資料。使用ZCUSTOMERS1表中的欄位名。這可以透過向前導航、雙擊程式碼中的表名或開啟一個新會話並使用事務SE11來完成。然後可以將表的欄位複製並貼上到ABAP編輯器中。
以下是程式碼片段:
DATA wa_customers1 LIKE ZCUSTOMERS1. wa_customers1-customer = '100006'. wa_customers1-name = 'DAVE'. wa_customers1-title = 'MR'. wa_customers1-dob = '19931017'. INSERT ZCUSTOMERS1 FROM wa_customers1.
然後可以按如下方式使用CHECK語句。這意味著如果記錄正確插入,系統將說明這一點。否則,將顯示不等於零的SY-SUBRC程式碼。以下是程式碼片段:
IF SY-SUBRC = 0. WRITE 'Record Inserted Successfully'. ELSE. WRITE: 'The return code is ', SY-SUBRC. ENDIF.
檢查程式,儲存,啟用程式碼,然後測試它。輸出視窗應顯示為“記錄插入成功”。
CLEAR語句
CLEAR語句允許清除欄位或變數,以便在其位置插入新資料,從而允許重複使用它。CLEAR語句通常用於程式中,並且它允許多次使用現有欄位。
在前面的程式碼片段中,工作區結構已填充資料以建立要插入ZCUSTOMERS1表的新記錄,然後執行驗證檢查。如果要插入新記錄,則必須使用CLEAR語句,以便可以使用新資料再次填充它。
UPDATE語句
如果要同時更新表中的一條或多條現有記錄,則使用UPDATE語句。與INSERT語句類似,宣告一個工作區,填充要放入記錄中的新資料,然後在程式執行時放入記錄中。此處將使用INSERT語句先前建立的記錄進行更新。只需編輯儲存在NAME和TITLE欄位中的文字。然後在新的一行上,使用與INSERT語句相同的結構,並且這次使用UPDATE語句,如以下程式碼片段所示:
DATA wa_customers1 LIKE ZCUSTOMERS1. wa_customers1-customer = '100006'. wa_customers1-name = 'RICHARD'. wa_customers1-title = 'MR'. wa_customers1-dob = '19931017'. UPDATE ZCUSTOMERS1 FROM wa_customers1.
執行UPDATE語句後,可以在ABAP Dictionary中檢視資料瀏覽器以檢視記錄是否已成功更新。
MODIFY語句
MODIFY語句可以被認為是INSERT和UPDATE語句的組合。它可以用於插入新記錄或修改現有記錄。它遵循與前面兩個語句類似的語法,以修改從輸入到工作區的資料中修改的記錄。
執行此語句時,將檢查所涉及的關鍵欄位與表中的關鍵欄位。如果具有這些關鍵欄位值的記錄已存在,則將更新它。否則,將建立一個新記錄。
以下是建立新記錄的程式碼片段:
CLEAR wa_customers1. DATA wa_customers1 LIKE ZCUSTOMERS1. wa_customers1-customer = '100007'. wa_customers1-name = 'RALPH'. wa_customers1-title = 'MR'. wa_customers1-dob = '19910921'. MODIFY ZCUSTOMERS1 FROM wa_customers1.
在此示例中,使用CLEAR語句以便可以將新條目放入工作區,然後新增客戶(編號)100007。由於這是一個新的、唯一的關鍵欄位值,因此將插入一個新記錄,並執行另一個驗證檢查。
執行此操作並在資料瀏覽器中檢視資料時,將為客戶編號100007(RALPH)建立一條新記錄。
以上程式碼產生以下輸出(表內容):
