COLLECT etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
COLLECT etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
23 Eylül 2013 Pazartesi
Example for COLLECT statement
DATA: BEGIN OF seats,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
seatsocc TYPE sflight-seatsocc,
END OF seats.
DATA seats_tab LIKE HASHED TABLE OF seats
WITH UNIQUE KEY carrid connid.
SELECT carrid connid seatsocc
FROM sflight
INTO seats.
COLLECT seats INTO seats_tab.
ENDSELECT.
LOOP AT seats_tab INTO SEATS.
WRITE: / 'CARRID:', SEATS-carrid, 'CONNID: ', SEATS-Connid , 'SEATSOCC: ', SEATS-seatsocc.
ENDLOOP.
19 Eylül 2013 Perşembe
Collect Statement in SAP ABAP
COLLECT komutu internal tablosuna veri ile doldururken kullanılır. Ancak uniq olanların dışındakiler toplanarak yazılır.
COLLECT working_area_table INTO internal_area_table.
Çalışma ortamından internal tablosuna eğer belirtilen anahtara ait bir kayıt yoksa
veri tablonun sonuna boş bir alan eklenerek yazılır. Eğer aynı anahtar alanına ait bir kayıt varsa, internal tablosundaki bu kayıttaki veri çalışma alanındaki veri ile toplanarak yazılır.
COLLECT sadece uniq değerli internal tablolar yaratacaksanız kullanılmalıdır. Ancak bu durumda COLLECT ten performans sağlarsınız.
COLLECT komutu standart tablolar için uygun değildir. Sadece sıralanmış ve hashed tablolar ile problemsiz çalışır, çünkü standart tabloların aksine, ancak bu tür tablolarda değişmeyen ayrı bir anahtar ile işlem yapılabilir. Hashed tablolar için, bütün istenen alanlar otomatik olarak doldurulur.
Eğer ısrarla standart tabloda COLLECT kullanılacaksa, sadece MODIFY komutu ile birlikte kullanılabilir. Ancak COLLECT komutunu TRANSPORTING ile kullanılacaksa, primary key alanının değişmediğinden emin olmanız gerekir. Aksi halde COLLECT komutu doğru sonuç vermez.
Bir standart tablonun COLLECT kullanımı için uygun olup olmadığını gösteren modül ABL_TABLE_HASH_STATE dir.
COLLECT
Çalışma ortamından internal tablosuna eğer belirtilen anahtara ait bir kayıt yoksa
veri tablonun sonuna boş bir alan eklenerek yazılır. Eğer aynı anahtar alanına ait bir kayıt varsa, internal tablosundaki bu kayıttaki veri çalışma alanındaki veri ile toplanarak yazılır.
COLLECT sadece uniq değerli internal tablolar yaratacaksanız kullanılmalıdır. Ancak bu durumda COLLECT ten performans sağlarsınız.
COLLECT komutu standart tablolar için uygun değildir. Sadece sıralanmış ve hashed tablolar ile problemsiz çalışır, çünkü standart tabloların aksine, ancak bu tür tablolarda değişmeyen ayrı bir anahtar ile işlem yapılabilir. Hashed tablolar için, bütün istenen alanlar otomatik olarak doldurulur.
Eğer ısrarla standart tabloda COLLECT kullanılacaksa, sadece MODIFY komutu ile birlikte kullanılabilir. Ancak COLLECT komutunu TRANSPORTING ile kullanılacaksa, primary key alanının değişmediğinden emin olmanız gerekir. Aksi halde COLLECT komutu doğru sonuç vermez.
Bir standart tablonun COLLECT kullanımı için uygun olup olmadığını gösteren modül ABL_TABLE_HASH_STATE dir.
Kaydol:
Kayıtlar (Atom)
