ABAP-debug-“SY-SUBRC” 傳回值

來源:互聯網
上載者:User

當進行Debug的時候,經常會遇到"SY-SUBRC"的傳回值。具體如何使用。在各種語句下傳回值。

================= FUNCTION MODULE (或RFC中) SY-SUBRC 的含義 ================
使用SELECT語句選取查詢:
SY-SUBRC = 0: 至少有一行資料,當ENDSELECT語句執行完,SY-DBCNT中儲存著記錄的個數。
SY-SUBRC = 4: 沒有資料。
SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”時才會有,
              表示: WHERE條件指定的記錄不止一行,結果是沒有記錄被選中。

使用INSERT語句,向表中插入一行,必須注意INSERT的順序與表中欄位的順序一致:
SY-SUBRC = 0: 插入成功,SY-DBCNT包含了插入的行數,0或1。
SY-SUBRC = 4: 由於有相同的KEY存在,所以插入失敗。

使用LOOP語句來遍曆一個內表:
SY-SUBRC = 0: 迴圈至少被執行一次。
SY-SUBRC = 4: 迴圈沒有被執行,可能是沒有資料,也可能是沒有合格記錄。

使用DELETE語句來刪除一條記錄:
SY-SUBRC = 0: 找到一行並刪除之,如果該表有不唯一主鍵,也就是有多條重複的記錄,則只刪除第一條記錄。
SY-SUBRC = 4: 沒有找到合格記錄,也沒有刪除。

使用UPDATE語句來更新一條記錄:
SY-SUBRC = 0: 找到記錄並更新,(如果有多條記錄呢?)
SY-SUBRC = 4: 沒有找到合格記錄,也沒有更新。

當進行Debug的時候,經常會遇到"SY-SUBRC"的傳回值。具體如何使用。在各種語句下傳回值。

================= FUNCTION MODULE (或RFC中) SY-SUBRC 的含義 ================
使用SELECT語句選取查詢:
SY-SUBRC = 0: 至少有一行資料,當ENDSELECT語句執行完,SY-DBCNT中儲存著記錄的個數。
SY-SUBRC = 4: 沒有資料。
SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”時才會有,
              表示: WHERE條件指定的記錄不止一行,結果是沒有記錄被選中。

使用INSERT語句,向表中插入一行,必須注意INSERT的順序與表中欄位的順序一致:
SY-SUBRC = 0: 插入成功,SY-DBCNT包含了插入的行數,0或1。
SY-SUBRC = 4: 由於有相同的KEY存在,所以插入失敗。

使用LOOP語句來遍曆一個內表:
SY-SUBRC = 0: 迴圈至少被執行一次。
SY-SUBRC = 4: 迴圈沒有被執行,可能是沒有資料,也可能是沒有合格記錄。

使用DELETE語句來刪除一條記錄:
SY-SUBRC = 0: 找到一行並刪除之,如果該表有不唯一主鍵,也就是有多條重複的記錄,則只刪除第一條記錄。
SY-SUBRC = 4: 沒有找到合格記錄,也沒有刪除。

使用UPDATE語句來更新一條記錄:
SY-SUBRC = 0: 找到記錄並更新,(如果有多條記錄呢?)
SY-SUBRC = 4: 沒有找到合格記錄,也沒有更新。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.