SAP ABAP資料表的操作
這幾天對於資料標的操作表較多,自己從網上找資料和自己動手操作總結了一些資料表的增刪改查操作,希望對一些初學者有所幫助,僅供參考。
開源的資料庫操作都離不開INSERT、UPDATE、MODIFY和DELETE語句。其中當SY-DBCNT返回為0,則表示操作成功,此外還將返回實際操作的資料行數。需要指明的是Open SQL本身並不進行操作許可權的檢查,若需要進行設定,則要在系統中建立授權物件。
一.INSERT語句
Open SQL中的INSERT語句用於向資料庫中插入新條目。
1.插入單行資料:dbtab是內表,wa是工作區。
INSERT INTO dbtab VALUES wa.
INSERT INTO dbtab FROM wa.
內表:Internal memory table 記憶體中的表,是外設(螢幕、磁碟,印表機等)和資料庫表資料交換的中介。
wa為工作區,是與資料庫具有相同結構的資料物件,一般直接基於資料庫結構宣告。該語句也可以將資料插入檢視中,首先該檢視所有欄位必須來自同一個資料庫表,而且在資料字典中的maintenance status屬性必須設定為read and change
注:如果相同表關鍵字的資料條目已經存在,則不能重新插入,只能對非關鍵字進行更改(UPDATE,MODIFY)
2.插入多行資料:datab是內表,itab是表
INSERT dbtab FROM TABLES itab.
其中itab是內表,包含希望插入的資料條目。
注:內表應與資料庫的行結構一致。
所有條目成功插入,則SY-SUBRC返回0
使用ACCEPTING DUPLICATE可避免該錯誤。
INSERT dbtab FROM TABLE itab ACCEPTING DUPLICATE KEYS.
ACCEPTING DUPLICATE的效果是:若出現關鍵字相同,返回4,並跳過其再更新所有的其他。
二.UPDATE語句
1.更新單行資料:
UPDATE dbtab SET f1=g1 ... fn=gn WHERE <fix_key>.
f表組建欄位名,g為新設定的值,WHERE為確保只更新單行。
注:除f=g外還可 f=f+g、f=f-g
透過工作區更改單行資料:
UPDATE dbtab FROM wa.
2.更新多行資料:
UPDATE dbtab SET f1=g1 ... fi=gi [WHERE <conditions>].
也可以使用SET和WHERE子句同時更新多行資料值;此外不需要在WHERE中限定所有表關鍵字,該語句本身將更新所有滿足條件的資料條目,若不是用WHERE子句,則將更新當前資料集團中的所有資料行。
注:如果至少有一行資料被更新SY-BUBRC返回0,否則返回4。
還可透過內表來更新多行資料:
UPDATE target FROM TABLE itab.
三.MODIFY語句
MODIFY語句是SAP的Open SQL中專有語句,該語句相當於INSERT和UPDATE語句的結合。引入期的原因是當更新資料庫操作時,並不確知資料庫中是否遺憾相應的資料行。
1.新增或更新單行:
MODIFY dbtab FROM wa.
注:操作後SY-SUBRC恆為0;SY-DBCNT為1
2.新增或更新多行:
MODIFY dbtab FROM TABLE itab.
內表itab將覆蓋資料庫表中具有相同主關鍵字的條目。
注:SY-SUBRC恆為0;SY-DBCNT返回行數
四.DELETE語句
1.刪除單行資料:
DELETE FROM dbtab WHERE <fix_key>.
或 DELETE dbtab FROM wa.
其中WHERE必須指明全部表關鍵欄位的值;wa為工作區,若不去dbtab匹配操作將失敗。
2.刪除多行資料:
DELETE FROM dbtab WHERE <condition>.
DELETE dbtab[CLIENT SPECIFIED] FROM TABLE itab.
注:返回值同MODIFY
3.刪除多行資料:
兩種形式:1).透過內表刪除多行資料條目的過程中將內表置為空;2).使用WHERE FIELD LIKE '%'。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901557/viewspace-2673037/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP ABAP SM50的另類用途 - ABAP工作程式對資料庫表讀取操作的檢測資料庫
- SAP ABAP裡資料庫表的Storage Parameters從哪裡來的資料庫
- SAP ABAP和Hybris Commerce的Sample資料
- ABAP資料庫表的後設資料資料庫
- [ChatGPT 勘誤]:SAP ABAP 系統裡資料庫表 dlv_systc 的用途ChatGPT資料庫
- SAP ABAP OData 服務的 $count 操作實現
- SAP ABAP maintanence view的資料校驗機制AIView
- 如何檢視型別為LRAW的SAP ABAP資料庫表欄位的內容型別資料庫
- 如何自行查詢出 SAP ABAP 標準的 OData 服務返回資料的後臺資料庫表和表欄位名稱資料庫
- 如何對 ABAP 資料庫表透過 ABAP 程式碼進行更新和刪除操作試讀版資料庫
- SAP ABAP, Fiori, Android和Hybris裡的非同步操作Android非同步
- SAP ABAP 系統進行資料庫表查詢的幾種常用方法的試讀版資料庫
- 如何手動透過增強的方式,給 SAP ABAP 資料庫表增添新的欄位資料庫
- SAP中的資料庫表索引資料庫索引
- MySQL資料表的基本操作MySql
- MySQL 資料表操作MySql
- SAP ABAP 動態內表實現 ALV橫向按月份動態顯示資料
- SAP ABAP Netweaver 裡的 ABAP 會話概念會話
- SAP ABAP 特性相關表取數邏輯
- SAP Hybris Commerce裡的資料庫表資料庫
- SAP ABAP OData 服務的 $count 和 $inlinecount 兩個操作的區別inline
- 如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料Prometheus應用日誌
- SAP ABAP ALV 層次順序表如何使用雙表頭(Multiple Headers)進行資料輸出試讀版Header
- 使用ABAP(ADBC)和Java(JDBC)連線SAP HANA資料庫JavaJDBC資料庫
- SAP ABAP報表依賴設計原理詳解
- 如何把 SAP ABAP 系統裡一張資料庫表的內容,顯示在 Adobe PDF Form 裡資料庫ORM
- SAP ABAP FOR ALL ENTRIES 的用法
- 如何建立最簡單的 ABAP 資料庫表,以及編碼從資料庫表中讀取資料 (上)資料庫
- 值得白嫖的資料庫常用操作語句彙總(資料庫、資料表、資料操作)資料庫
- 具備自動重新整理功能的 SAP ABAP ALV 報表
- SAP ABAP Gateway Client 的 ABAP 實現,重用 HTTP ConnectionGatewayclientHTTP
- 如何修改 SAP ABAP OData 模型,使其支援 $expand 操作試讀版模型
- SAP ABAP OData 服務如何支援 $orderby (排序)操作試讀版排序
- SAP供應商主資料表
- ABAP 資料庫表 Size Category 欄位的準確含義資料庫Go
- 關於SqlServer資料表操作SQLServer
- SAP ABAP 程式之間的呼叫
- SAP ABAP 標準表和其欄位的命名規則講解