SAP Knowledge Wiki
ABAP/DELETE
の編集
Top
/
ABAP
/
DELETE
-- 雛形とするページ --
(no template pages)
[[内部テーブル>ABAP/内部テーブル]]または[[アドオンテーブル>SAPのオブジェクト/アドオンテーブル]]のデータの削除に使用する。 * 概要 [#j4d77dd6] ** 用法 [#m1e61e8f] 不要な行データの削除に使用する。 [[内部テーブル>ABAP/内部テーブル]]・[[アドオンテーブル>SAPのオブジェクト/アドオンテーブル]]の双方に共通するのは、条件に合致する行を一括で削除した方が良いことで、プログラムのトレースやパフォーマンスの観点から個別に削除するよりも優れる。 なお、あるべき論で言えば必要なデータを必要なだけ過不足のなく抽出すればよいのだが、あまり抽出条件がややこしくなると[[SELECT>ABAP/SELECT]]などSQL命令のパフォーマンスが悪化してしまう。 そのため、テーブルからは「荒め」な条件でデータを抽出し、抽出後の処理で読み飛ばしたり、この命令で削除したりというのも実践的なコーディングなのかと思う。 ** サンプル [#p8e30ede] *** 内部テーブル [#o56d4e18] DELETE L_IT_ORDER WHERE VTWEG <> P_VTWEG AND MATKL = P_MATKL. *** アドオンテーブル [#oced293c] DELETE FROM ZZLINEITEM WHERE VTWEG <> P_VTWEG AND MATKL = P_MATKL. データベーステーブルに対して行う場合は、DELETE命令の後に[[COMMIT>ABAP/COMMIT WORK]]または[[ROLLBACK>ABAP/ROLLBACK WORK]]命令を発行する必要があり、これを意識しておかないと後続の[[MESSAGE>ABAP/MESSAGE]]文などにより意図しない結果となる可能性がある。 * その他 [#lb3435f1] [[LOOP>ABAP/LOOP]]内で内部テーブルの行を削除する場合は特に注意が必要で、対象となる内部テーブルのINDEXを把握しておく必要があり、これを考慮しないとショートダンプが発生する場合もある。 まぁ、そもそもLOOPに回しているテーブルを削除するのはあまり良いロジックではないのだが。 ~ ~ CENTER:【スポンサードリンク】 #htmlinsert(amazon_book_sap_system_implement) ~ ~ ---- #pcomment(reply)
タイムスタンプを変更しない
[[内部テーブル>ABAP/内部テーブル]]または[[アドオンテーブル>SAPのオブジェクト/アドオンテーブル]]のデータの削除に使用する。 * 概要 [#j4d77dd6] ** 用法 [#m1e61e8f] 不要な行データの削除に使用する。 [[内部テーブル>ABAP/内部テーブル]]・[[アドオンテーブル>SAPのオブジェクト/アドオンテーブル]]の双方に共通するのは、条件に合致する行を一括で削除した方が良いことで、プログラムのトレースやパフォーマンスの観点から個別に削除するよりも優れる。 なお、あるべき論で言えば必要なデータを必要なだけ過不足のなく抽出すればよいのだが、あまり抽出条件がややこしくなると[[SELECT>ABAP/SELECT]]などSQL命令のパフォーマンスが悪化してしまう。 そのため、テーブルからは「荒め」な条件でデータを抽出し、抽出後の処理で読み飛ばしたり、この命令で削除したりというのも実践的なコーディングなのかと思う。 ** サンプル [#p8e30ede] *** 内部テーブル [#o56d4e18] DELETE L_IT_ORDER WHERE VTWEG <> P_VTWEG AND MATKL = P_MATKL. *** アドオンテーブル [#oced293c] DELETE FROM ZZLINEITEM WHERE VTWEG <> P_VTWEG AND MATKL = P_MATKL. データベーステーブルに対して行う場合は、DELETE命令の後に[[COMMIT>ABAP/COMMIT WORK]]または[[ROLLBACK>ABAP/ROLLBACK WORK]]命令を発行する必要があり、これを意識しておかないと後続の[[MESSAGE>ABAP/MESSAGE]]文などにより意図しない結果となる可能性がある。 * その他 [#lb3435f1] [[LOOP>ABAP/LOOP]]内で内部テーブルの行を削除する場合は特に注意が必要で、対象となる内部テーブルのINDEXを把握しておく必要があり、これを考慮しないとショートダンプが発生する場合もある。 まぁ、そもそもLOOPに回しているテーブルを削除するのはあまり良いロジックではないのだが。 ~ ~ CENTER:【スポンサードリンク】 #htmlinsert(amazon_book_sap_system_implement) ~ ~ ---- #pcomment(reply)
テキスト整形のルールを表示する